如何在SQL数据库的DataGrid中只显示某些列
本文关键字:显示 DataGrid SQL 数据库 | 更新日期: 2023-09-27 18:20:12
假设我在SQL数据库中有一个名为Table_T
的表,它包含6列(column1
、column2
、…、column6
)。
以下代码将数据库中的所有列填充到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;
}
但是我怎么能只选择column3&列5并将它们填充到dataGridview1
中?
SELECT column3, column5 FROM Table_T
为什么不起作用?
如果您不需要从表中返回所有内容,则应使用
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])
}
----编辑----
重新审视你的问题,如果你将其绑定到一个网格视图,并且只想要某些信息,你应该将这些值添加到一个新的数据表中,然后只显示新的数据表格
所以你需要做一些类似的事情
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;
[此答案最初由@caricorn]作为评论发布
SqlCommand cm = new SqlCommand("SELECT column3,column5 FROM Table_T")
这个代码运行得很好。谢谢大家的帮助。所有的尊重和问候。