2014-12-02 63 views
0

比如我有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,以便我可以將它插入表中。

回答

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 

在此之後,檢索客戶ID是簡單的閱讀SelectedValue屬性的問題
(不要忘記檢查,如果有什麼選擇的在組合中)

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