'перекрестные ссылки' DataTable's - PullRequest
0 голосов
/ 15 июня 2010

У меня есть DataGridView, который заполняется данными из таблицы.Внутри этой таблицы находится столбец под названием «группа», в котором есть идентификатор отдельной группы в другой таблице.

Что я хотел бы сделать, это заполнить DataGridView вместо отображения идентификатора, содержащегося в 'group ', я бы хотел, чтобы отображалось название группы.Есть ли какой-то тип "магии" VB.net, который может это сделать, или мне нужно самому перекрестно ссылаться на данные?

Вот пример того, как выглядят две таблицы:

table1
id
group (содержит значение id столбца в таблице 2)
weight
last_update

table2
id
description (вот чтоЯ хотел бы, чтобы меня отображали в DGV.)

Кстати - я использую Visual Studio Express.

1 Ответ

0 голосов
/ 15 июня 2010

Я бы сказал, что самым простым способом было бы сделать это.

  1. Во-первых, убедитесь, что у вас установлено отношение один-ко-многим между table1 и table2 (с parent как table2's * 1004).* столбец и дочерний элемент как group столбец таблицы 1).
  2. В таблице table1 добавьте столбец «group_description» и установите для его свойства Expression значение Parent.description.

Ваш коддля этого это может выглядеть так:

' In case you do not have this relation set up already: '
Dim relation = New DataRelation( _
    "table2_table1", _
    table2.Columns("id"), _
    table1.Columns("group") _
)

dataSet1.Relations.Add(relation)

' This new column will automatically be updated with the description column '
' from table2. '    
Dim groupDescriptionColumn = table1.Columns.Add( _
    "group_description", _
    GetType(String) _
)

groupDescriptionColumn.Expression = "Parent.description"

Тогда вы всегда можете скрыть свой исходный столбец group, если не хотите, чтобы он был видимым.

...