如何仅显示 SQL 数据库中 DataGrid 中的某些列?

Posted

技术标签:

【中文标题】如何仅显示 SQL 数据库中 DataGrid 中的某些列?【英文标题】:How to only display certain columns in DataGrid from SQL database? 【发布时间】:2016-02-01 17:56:32 【问题描述】:

假设我在 SQL 数据库中有一个名为 Table_T 的表,它包含 6 列(column1column2、...、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 和 column5 并将它们填充到 dataGridview1 中?

【问题讨论】:

SqlCommand cm = new SqlCommand("SELECT column3,column5 FROM Table_T"); 【参考方案1】:
SELECT column3, column5 FROM Table_T

为什么不行?

【讨论】:

@naouf 太棒了!请按答案旁边的勾号将其标记为正确答案:) @naouf 当帖子回答您的问题时,您可以点击答案附近的复选标记以使其被接受。这样以后对用户的帮助会更大。虽然您只能将一个答案标记为已接受,但当您的声誉得分达到 15 时,您可以投票给您认为有帮助的尽可能多的答案,包括已接受的答案。您也可以为好的问题投票。 :)【参考方案2】:

如果你不需要从表中返回所有东西,你应该使用

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 并且只需要某些信息,您应该将这些值添加到新数据表中,然后仅显示新数据表

所以你需要做类似的事情

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;

【讨论】:

【参考方案3】:

[这个答案最初是由@capricorn 发表的评论]

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

这段代码运行良好。感谢大家的帮助 。所有的尊重和问候。

【讨论】:

既然有帖子回答了你的问题,你可以删除这个帖子并接受this answer :)

以上是关于如何仅显示 SQL 数据库中 DataGrid 中的某些列?的主要内容,如果未能解决你的问题,请参考以下文章

使用 vb.net 根据 SQL 数据库中存在的记录动态显示/隐藏 DataGrid 按钮列时遇到问题

ComboBox仅显示ICollectionView中字段的唯一值

使用文本框的值绑定Datagrid

vb中datagrid控件的使用方法有哪些?

更新 DATAGRID 行以保存到 SQL

仅在实体对象的 DataGrid 中显示某些列