在VB.NET中,我在使用数据表填充DataGridView组合框时遇到问题

时间:2016-10-03 03:12:22

标签: vb.net datagridview combobox

我有一个数据表(dsBrands),我想在datagridview中显示。 datagridview中的组合框从不同的表(dsGroups)中获取其选择。如何在组合框中显示当前存储在dsBrands表中的值?下面是我的代码,除了组合框留空。组合框集合可以从dsGroups正确填充。需要在dsBrands的组合框中显示的值位于集合中。 - >只是为了让这条线脱颖而出,而不是在实际的代码中。

Private Sub FillBrands()
    Dim TransCount As Integer
    Dim Group As String

    If Not ds.Tables.Contains("dsBrands") Then Else ds.Tables("dsBrands").Clear()
    conn.Open()
    daBrands = New OleDbDataAdapter("Select * from Brands", conn)

    daBrands.FillSchema(ds.Tables("dsBrands"), SchemaType.Source)
    daBrands.Fill(ds, "dsBrands")
    conn.Close()

    dgv1.AutoGenerateColumns = False
    bs1.DataSource = ds.Tables("dsBrands")
    dgv1.DataSource = bs1

    Dim colDisplay As New DataGridViewCheckBoxColumn
    colDisplay.DataPropertyName = "Display"
    colDisplay.HeaderText = "Include?"
    colDisplay.Name = "Display"
    colDisplay.Visible = True

    Dim colGroupList As New DataGridViewComboBoxColumn
    colGroupList.HeaderText = "Add to Group"
    colGroupList.Name = "GroupList"
    colGroupList.Visible = True
    colGroupList.DataSource = ds.Tables("dsGroups")
   -->  colGroupList.DataPropertyName = "BGroup"  'BGroup is a field in dsBrands table.

    dgv1.Columns.Add(colDisplay)
    dgv1.Columns.Add(colBrand)
    dgv1.Columns.Add(colGroup)
    dgv1.Columns.Add(colGroupList)

End Sub

1 个答案:

答案 0 :(得分:0)

与绑定常规ComboBox时一样,您需要设置列的DisplayMemberValueMember属性。 DisplayMember指定显示其值的列,ValueMember指定其值对应于网格数据的列。 ValueMember应指定绑定到与绑定到网格的表的FK列对应的列的表的PK列。