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

时间:2014-12-02 17:53:12

标签: mysql vb.net combobox insert auto-increment

例如,我有一个包含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,以便我可以将其插入表格中。

1 个答案:

答案 0 :(得分:2)

您应该只检索所需的字段,然后将查询结果分配给组合框的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

在此之后,检索CustomerID只是读取SelectedValue属性的问题 (别忘了检查组合中是否有选择的内容)

   if cmbSupplier.SelectedValue IsNot Nothing Then
       Dim custID = Convert.ToInt32(cmbSupplier.SelectedValue)
   End If