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