2012-05-21 5 views
1

Мне нужно отобразить столбец Full Name в DataGridView, но DataSource (datatable) не имеет колонки FullName. Он имеет только FirstName и LastName столбцов. Я устанавливаю мой DataGridView так:Использование 2 разных баз данных в одном документе datagridview

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

Как я могу установить DataPropertyName использовать данные из обоих FirstName и LastName столбцов в DataTable.?

Спасибо.

+0

ответ Стива очень хорошо - так как у вас уже есть DataTable, что почти наверняка путь. Для полноты, однако, стоит отметить, что вы можете рассчитывать столбцы в самой сетке http://stackoverflow.com/questions/6097370/calculation-in-datagridview-column –

ответ

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 и/или цикл должны делать трюк.

4

Использование другого подхода. Добавьте вычисляемый столбец к вашему datatable.

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

где dt - это тип данных, который вы задали как DataSource вашего DataGridView.

Правила для экспрессии синтаксиса, используемого в вычисляемых столбцов можно найти на этом link on MSDN.
Те же правила применяются также к другому очень полезный метод: метод DataTable.Select(filterExpression)

+0

Не знал, что вы можете это сделать. Довольно аккуратно. – Yatrix

+0

@ Yatrix, и это лишь небольшая часть синтаксиса. [См. Здесь] (http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx) – Steve

+0

Уже проверено, когда я увидел ваш ответ. =) Thx, tho. – Yatrix

Смежные вопросы