'交叉引用'DataTable

时间:2010-06-15 06:57:00

标签: vb.net ado.net dataset

我有一个正在填充表中数据的DataGridView。在此表中有一个名为“group”的列,其中包含另一个表中单个组的ID。

我想要做的是,当填充DataGridView时,我希望它显示组的名称,而不是显示“group”中包含的ID。是否有某种类型的VB.net'魔术'可以做到这一点,还是我需要自己交叉引用数据?

以下是2个表格的分类:

表1
  ID
  group(这保存表2中列id的值)
  重量
  last_update

表2
  ID
  说明(这是我希望在DGV中显示的内容。)

BTW - 我正在使用Visual Studio Express。

1 个答案:

答案 0 :(得分:0)

我想说最简单的方法就是这样做。

  1. 首先,确保在table1和table2之间设置了一对多关系(其中parent为table2的id列,child为table1的group列。)
  2. 在表1中,添加“group_description”列并将其Expression属性设置为Parent.description
  3. 您执行此操作的代码可能如下所示:

    ' 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列。