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属性之前在设计器或代码中进行设置.
我认为 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。
不过,该属性不在“属性”窗口中,您必须通过代码来设置它,如我的示例中所示。