使用2个不同的数据库列进行单个datagridview

时间:2012-05-21 17:33:28

标签: .net vb.net winforms datagridview

我需要在Full Name中显示名为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列的数据。?

感谢。

2 个答案:

答案 0 :(得分:4)

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

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

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

此计划列中使用的表达式语法的规则可在此 link on MSDN找到。
同样的规则也适用于另一种非常有用的方法: DataTable.Select(filterExpression) 方法

答案 1 :(得分:1)

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

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

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