从ComboBox中选择值并在文本框中显示它的详细信息

时间:2013-06-17 11:49:34

标签: database vb.net combobox textbox oledbconnection

我在从两个表中显示产品详细信息时遇到了一些问题。

我正在使用VS 2010和MS Access数据库。

我的数据库表结构如下:

  • 产品(#Product_IDCategory_IDProduct_NameProduct_CostProduct_Price

  • 类别(#Category_IDCategory_Name

当我从Combobox中选择ProductCost时,我想要的是在文本框中显示ProductPriceCategoryNameProductName。我可以显示ProductCost& ProductPrice但无法显示CategoryName,因为我不确定如何将这两个表链接在一起。

我用于使用ProductName填充Combobox的代码是:

Public Sub fillProductCombobox(ByVal sender As Object)
    Dim da As New OleDbDataAdapter
    Dim dt As New DataTable
    Try
        conn.Open()
        da.SelectCommand = New OleDbCommand("SELECT * FROM Product", conn)
        da.Fill(dt)
        sender.DataSource = dt
        sender.DisplayMember = "Product_Name"
        sender.ValueMember = "Product_ID"

        'best method?
        frmAddSalesProduct.txtProductCost.DataBindings.Add("Text", dt, "Product_Cost")
        frmAddSalesProduct.txtPerPrice.DataBindings.Add("Text", dt, "Product_Price")
    Catch ex As Exception
        MsgBox(ex.Message)
    Finally
        conn.Close()
    End Try
End Sub

然后我在表单加载时以这种方式调用函数:

fillProductCombobox(ProductComboBox)

这是我的表单形式:Form example

请指导我如何显示CategoryName

这也是我用Product_CostProduct_Price填充最佳方法的方法吗?

P / S:出于某种原因,我需要动态完成所有事情

1 个答案:

答案 0 :(得分:1)

您可以使用

等连接查询
 SELECT Product_ID, p.Category_ID, Product_Name, Product_Cost, Product_Price, Category_Name
 FROM Product p
 INNER JOIN Category c ON p.Category_ID = c.Category_ID

因此,您将使用此查询获取类别名称,只需在绑定其他人时绑定文本框。

我希望它会对你有所帮助。 :)