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

发布于 2024-08-11 03:49:42 字数 618 浏览 7 评论 0原文

有没有一种优雅的方法,将预定义的 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

致以诚挚的问候!

Is there a elegant way, to bind predefined dataGridView columns with results from a SQL statement?

Example:

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

Some SQL like

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

and then I call

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

The last call add columns to my datagrid but I just want to bind it by column name not to add new columns.

The example will give a result like this:

Table columns: ID, FirstName, FName, EID (ID and FirstName holds empty cells)

How to get this:

Table columns: ID, FirstName or FirstName, ID

Best regards!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

往事风中埋 2024-08-18 03:49:42

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

Use dataGridView1.Columns["FName"].DataPropertyName = "FName" where FName is column in your data table.

嘦怹 2024-08-18 03:49:42

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

Aside from setting AutoGenerateColumns to false, you also need to set DataPropertyName for each column in the DataGridView to the corresponding field in the data source. You can set this in the designer or in code before setting the DataSource property.

弱骨蛰伏 2024-08-18 03:49:42

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

dataGridView1.AutoGenerateColumns = True;

来自 MSDN 文档:

公共布尔AutoGenerateColumns {设置;
得到; }
System.Windows.Forms.DataGridView 的成员

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

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

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

I think the DataGridView has an AutoGenerateColumns property, doesn't it?

dataGridView1.AutoGenerateColumns = True;

From the MSDN docs:

public bool AutoGenerateColumns { set;
get; }
Member of System.Windows.Forms.DataGridView

Summary: Gets or sets a value
indicating whether columns are created
automatically when the
System.Windows.Forms.DataGridView.DataSource
or
System.Windows.Forms.DataGridView.DataMember
properties are set.

Returns: true if the columns should be
created automatically; otherwise,
false. The default is true.

The property isn't on the Properties window though, you have to set it via code as in my example.

浮云落日 2024-08-18 03:49:42

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

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

当然,已经设置了:

Me.AccountDataGridView.AutoGenerateColumns = False

If you are doing WinForm, the important part is setting the DataPropertyName property to match the DataTable Column name. You can do it in the designer or code as follows:

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

Of course, having set this:

Me.AccountDataGridView.AutoGenerateColumns = False
念﹏祤嫣 2024-08-18 03:49:42

像这样将列添加到 gridview 的 Columns 标签怎么样?

<Columns>
<asp:BoundField DataField="EID" HeaderText="ID" />
<asp:BoundField DataField="FName" HeaderText="First name" />
...

How about adding columns to the Columns tag of your gridview like so?

<Columns>
<asp:BoundField DataField="EID" HeaderText="ID" />
<asp:BoundField DataField="FName" HeaderText="First name" />
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文