无法在ComboBox

时间:2015-07-09 17:15:01

标签: vb.net ms-access

 dbConn.Open()

            Dim Query1 As String = cmbManufacturer.Text
            Dim AccessDataAdapter = New System.Data.OleDb.OleDbDataAdapter
            AccessDataAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand("Select Models.[ModelName] From Models Where Manufacturer = '" & Query1 & "'", dbConn)
            Dim AccessDataset = New DataSet
            AccessDataAdapter.Fill(AccessDataset, "Query1")
            cmbModel.DataSource = AccessDataset.Tables("Query1")

            dbConn.Close()

所以它的作用是,它从制造商组合框中选择并确定将在模型组合框中显示的值

我已经看过类似这样的问题,但主要是在c#中,所以我很难将它们联系起来。问题是所需组合框的输出是

  

System.Data.DataRowView

当我需要它作为它从查询中提取的模型名称时。我在每个组合框中的一组静态条目中对此进行了更改以使其动态化,因此将来我们不需要更改代码来添加或删除程序中的设备。

1 个答案:

答案 0 :(得分:1)

.DataSource用于向ComboBox填充项目时,DisplayMember用于从有界对象中检索dipslayed文本

来自MSDN:

  

如果对象上的指定属性或值不存在   DisplayMember是一个空字符串(“”),是对象的结果   而是显示ToString方法。

您未使用DisplayMember属性,因此在对象上调用了方法ToString(),即System.Data.DataRowView

您需要设置要用作显示文本的列名

cmbModel.DisplayMember= "ModelName"
'If you will use a SelectedValue for furthers purposes
'Then you maybe want to set a ValueMember too
cmbModel.ValueMember= "ModelName"
cmbModel.DataSource = AccessDataset.Tables("Query1")

DisplayMember Property