如何从数据库中获取自动填充的组合框的ID?

问题描述:

比如我有2个表的数据库:如何从数据库中获取自动填充的组合框的ID?

tblOrder    
OrderID <PK> Auto-Increment   
CustomerID <FK>  
Date  

tblCustomer 
CustomerID <PK> Auto-increment 
CustomerName 

然后我的订单形式填补了comboboxCustomerName

query = "select * from database.tblCustomer" 
     con.open 
     dr = New MySqlCommand(query, con).ExecuteReader 
     While dr.Read() 
      cmbSupplier.Items.Insert(dr.GetString("CustomerName") 
     End While 

我需要知道如何从选定的customerIDcustomerName,以便我可以将它插入表中。

您应该只检索所需的字段,然后将查询结果分配给组合框的DataSource属性。然后,你的DisplayMemberValueMember属性设置为相对列的名称

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