例如,我有一个包含2个表的数据库:
tblOrder
OrderID <PK> Auto-Increment
CustomerID <FK>
Date
tblCustomer
CustomerID <PK> Auto-increment
CustomerName
然后我用combobox
CustomerName
订单表格
query = "select * from database.tblCustomer"
con.open
dr = New MySqlCommand(query, con).ExecuteReader
While dr.Read()
cmbSupplier.Items.Insert(dr.GetString("CustomerName")
End While
我需要知道如何从选定的customerID
获取customerName
,以便我可以将其插入表格中。
答案 0 :(得分:2)
您应该只检索所需的字段,然后将查询结果分配给组合框的DataSource
属性。然后将DisplayMember
和ValueMember
属性设置为相对列的名称
query = "select CustomerID, CustomerName from database.tblCustomer"
con.open
dr = New MySqlCommand(query, con).ExecuteReader
Dim dt = new DataTable()
dt.Load(dr)
cmbSupplier.DisplayMember = "CustomerName"
cmbSupplier.ValueMember = "CustomerID"
cmbSupplier.DataSource = dt
在此之后,检索CustomerID只是读取SelectedValue属性的问题 (别忘了检查组合中是否有选择的内容)
if cmbSupplier.SelectedValue IsNot Nothing Then
Dim custID = Convert.ToInt32(cmbSupplier.SelectedValue)
End If