1

我需要显示Full Name在 a中调用的列DataGridView,但DataSource (datatable)没有FullName列。它只有FirstNameLastName列。我正在DataGridView这样设置:

Dim column As DataGridViewColumn = New DataGridViewTextBoxColumn()
column.DataPropertyName = "?" //Need FirstName + " " + LastName
column.Name = "FullName"
dgv.Columns.Add(column)

如何设置DataPropertyName使用数据表中的FirstNameLastName列中的数据。?

谢谢。

4

2 回答 2

4

使用另一种方法。将计算列添加到数据表中。

Dim dc as DataColumn = dt.Columns.Add("FullName", System.Type.GetType("System.String"))
dc.Expression = "FirstName + ' ' + LastName"

其中 dt 是您设置为 DataGridView 的 DataSource 的数据表。

计算列中使用的表达式语法规则可以在 MSDN 上的这个链接中找到。
同样的规则也适用于另一个非常有用的方法:DataTable.Select(filterExpression)方法

于 2012-05-21T18:00:54.610 回答
1

我不认为这是如何DataPropertyName工作的。http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.datapropertyname.aspx

而是在数据库方面执行此操作。在您的选择(此处为 SQL Server 语法)中,执行 a FirstName + " " + LastName as FullName,您将得到一个 FullName 列,而不是两列。

如果您无权访问 SQL 端,则可以在代码中操作DataTable并创建自己的FullName列。我想一些 LINQ 和/或循环应该可以解决问题。

于 2012-05-21T18:00:33.503 回答