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

Joo*_*ooj 11 c# data-binding datatable dataview datagridview

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

例:

dataGridView1.Columns.Add("EID", "ID");
dataGridView1.Columns.Add("FName", "FirstName");
Run Code Online (Sandbox Code Playgroud)

有些SQL喜欢

SELECT t.FirstName AS FName, t.EmpID AS EID 
FROM table t ...
Run Code Online (Sandbox Code Playgroud)

然后我打电话

 dataGridView1.DataSource = someDataSet.Tables[0].DefaultView;
Run Code Online (Sandbox Code Playgroud)

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

该示例将给出如下结果:

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

怎么弄这个:

Table columns: ID, FirstName or FirstName, ID
Run Code Online (Sandbox Code Playgroud)

最好的祝福!

小智 16

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


小智 13

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


Nei*_*ell 4

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

dataGridView1.AutoGenerateColumns = True;
Run Code Online (Sandbox Code Playgroud)

来自 MSDN 文档:

公共布尔自动生成列{设置; 得到; System.Windows.Forms.DataGridView 的成员

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

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

不过,该属性不在“属性”窗口中,您必须通过代码来设置它,如我的示例中所示。