例如,我有一个包含 2 个表的数据库:
tblOrder
OrderID <PK> Auto-Increment
CustomerID <FK>
Date
tblCustomer
CustomerID <PK> Auto-increment
CustomerName
然后我在订单表单中填写了一个组合框
,其中包含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
我需要知道如何从选定的 customerName
获取 customerID
,以便将其插入表中。
最佳答案
您应该仅检索所需的字段,然后将查询结果分配给组合框的 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
关于mysql - 如何从数据库获取自动填充组合框的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255861/