如何使用sql语句中的列绑定dataGridView预定义列(不添加新列)?

有一种优雅的方法,将预定义的dataGridView列与SQL语句的结果绑定在一起吗?

例:

dataGridView1.Columns.Add("EID", "ID"); dataGridView1.Columns.Add("FName", "FirstName"); 

有些SQL喜欢

 SELECT t.FirstName AS FName, t.EmpID AS EID FROM table t ... 

然后我打电话

  dataGridView1.DataSource = someDataSet.Tables[0].DefaultView; 

最后一次调用将列添加到我的数据网格中,但我只想按列名绑定它而不是添加新列。

该示例将给出如下结果:

表列:ID,FirstName,FName,EID(ID和FirstName包含空单元格)

怎么弄这个:

 Table columns: ID, FirstName or FirstName, ID 

最好的祝福!

除了将AutoGenerateColumns设置为false之外,还需要将DataGridView中每个列的DataPropertyName设置为数据源中的相应字段。 您可以在设置DataSource属性之前在设计器或代码中进行设置。

使用dataGridView1.Columns["FName"].DataPropertyName = "FName"其中FName是数据表中的列。

我认为DataGridView有一个AutoGenerateColumns属性,不是吗?

 dataGridView1.AutoGenerateColumns = True; 

来自MSDN文档:

public bool AutoGenerateColumns {set; 得到; System.Windows.Forms.DataGridView的成员

摘要:获取或设置一个值,该值指示在设置System.Windows.Forms.DataGridView.DataSource或System.Windows.Forms.DataGridView.DataMember属性时是否自动创建列。

返回:如果应自动创建列,则返回true; 否则,是的。 默认值为true。

该属性不在“属性”窗口中,但您必须通过代码在我的示例中进行设置。

如何将列添加到gridview的Columns标记中呢?

    ... 

如果您正在使用WinForm,则重要的部分是设置DataPropertyName属性以匹配DataTable列名称。 您可以在设计器或代码中执行以下操作:

 Me.AccountDataGridView.Columns("Account").DataPropertyName = "Account" 

当然,设置了这个:

 Me.AccountDataGridView.AutoGenerateColumns = False