0
Я использую следующий код. В то время запуска в поле со списком отображается System.Data.DataRowView, а не название предмета из базы данныхVB.NET combobox отображает System.Data.DataRowView с базой данных доступа
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim fillcon As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\tcs.accdb")
Dim asql As String = ("SELECT ItemName FROM Items ORDER BY ItemName")
Dim da As New OleDbDataAdapter(asql, fillcon)
Dim ds As New DataSet
da.Fill(ds)
ComboBox1.ValueMember = "ItemName"
ComboBox1.DataSource = ds.Tables(0)
ComboBox1.SelectedIndex = 0
Catch ex As Exception
MsgBox("ERROR : " & ex.Message.ToString)
End Try
End Sub
, пожалуйста, поясните бит ясно –
Когда вы установите DataSource для combobox, вы в основном взяли все DataRows и добавили их. Теперь, поскольку DataRow может содержать несколько полей, он добавляется как объект типа DataRowView. Вам нужно указать одно из полей этого запроса для отображения. В вашем случае вы запросили только одно поле в своем запросе, но объект этого не знает, поэтому вам все равно нужно указать, в каком столбце вашего запроса вы хотите отобразить. 'Combobox1.DisplayMember =" ItemPrice "нужно добавить в ваш код. –
Но я хочу, чтобы в comboBox, как Combobox1.JisplayMember = "ItemName", отображалось другое имя базы данных. DisableMember = "ItemName" –