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

标签 mysql vb.net combobox insert auto-increment

例如,我有一个包含 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 属性。然后,将 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

关于mysql - 如何从数据库获取自动填充组合框的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255861/

相关文章:

php - Timespan - 检查 mysql 中的工作日和一天中的时间

.net - 从 ms-access 客户端界面切换到可执行文件

c# - 使用 TreeView 数据和同步选择填充组合框

javascript - Webix combo/richselect 中的过滤选项

php - 给我关于匹配人的算法的建议

mysql - 来自不同表的 2 个主键作为另一个表中的一个外键

从数据库中的十六进制值创建 PHP 图像

vb.net - 在 VB.NET 中将字符串解析为 Enum 值

vb.net - 使用自定义格式化程序的 Date.Parse

java - SWT Combo 和 CCombo 作为 CellEditor