如何从数据库中获取自动填充的组合框的ID?
问题描述:
比如我有2个表的数据库:如何从数据库中获取自动填充的组合框的ID?
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
,以便我可以将它插入表中。
答
您应该只检索所需的字段,然后将查询结果分配给组合框的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
在此之后,检索客户ID是简单的阅读SelectedValue属性的问题
(不要忘记检查,如果有什么选择的在组合中)
if cmbSupplier.SelectedValue IsNot Nothing Then
Dim custID = Convert.ToInt32(cmbSupplier.SelectedValue)
End If