2015-11-01 54 views
1

假設我在SQL數據庫中有一個名爲Table_T的表,它包含6列(column1,column2,...,column6)。如何僅從SQL數據庫中顯示DataGrid中的某些列?

下面的代碼填充數據庫中的所有列到dataGridView

private void button1_Click(object sender, EventArgs e) 
{ 

    SqlConnection cn = new SqlConnection(
     "Data Source=PCN-TOSH;Initial Catalog=mydb;Integrated Security=True"); 
    cn.Open(); 
    SqlCommand cm = new SqlCommand("SELECT *FROM Table_T"); 
    cm.Connection = cn; 

    SqlDataAdapter da = new SqlDataAdapter(cm); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    cn.Close(); 
    dataGridView1.DataSource = dt; 
} 

但我怎麼可以只選擇欄3 & column5,並將它們填充到dataGridview1

+0

SqlCommand cm = new SqlCommand(「SELECT column3,column5 FROM Table_T」); – c4pricorn

回答

2
SELECT column3, column5 FROM Table_T 

爲什麼不能工作?

+1

@naouf太棒了!請按下答案旁邊的勾號將其標記爲正確答案:) – 2015-11-01 22:19:40

+2

@naouf當某個帖子回答您的問題時,您可以點擊答案旁邊的複選標記以使其被接受。這樣對將來的用戶會更有幫助。雖然只能標記一個答案爲已接受,但當您達到15個信譽分數時,您可以投出儘可能多的答案,包括已接受的答案。你也可以爲好問題投票。 :) –

1

如果你不需要一切從表背,你應該使用

select col1, col2 from table 

,如果你需要它條件下使用where條款

但是,如果確實需要抓住所有列的數據,但只顯示在特定的時間特定的信息我會用一個foreach循環,像這樣

foreach(var item in dt.Rows) 
{ 
    var colValue0 = item[0].ToString() 
    var colValue1 = item[1].ToString() 
    var colValue2 = Convert.ToIn16(item[2]) 
} 

---- ----編輯

中東歐你的問題,如果你是這個綁定到GridView,只想要你應該將這些值添加到新的數據表中的某些信息,然後只顯示新的DataTable

所以你需要做的是這樣

var bindableDt = new Datatable(); 
bindableDt.Columns.Add("colName1") 
bindableDt.Columns.Add("colName2") 

foreach(var item in dt.Rows) 
{ 
    bindableDt.Row.Add(dt.Rows[0], dt.Rows[1]); 
} 
gridview.Datasource = bindableDt; 
0

[這個答案最初張貼由@capricorn評論]

SqlCommand cm = new SqlCommand("SELECT column3,column5 FROM Table_T") 

這個代碼藉機很好。感謝大家的幫助 。所有的尊重和問候。

+1

由於有一個帖子可以回答你的問題,你可以刪除這篇文章並接受[這個答案](http://stackoverflow.com/a/33467661/3110834):) –

相關問題