我在从两个表中显示产品详细信息时遇到了一些问题。
我正在使用VS 2010和MS Access数据库。
我的数据库表结构如下:
产品(#Product_ID
,Category_ID
,Product_Name
,Product_Cost
,Product_Price
)
类别(#Category_ID
,Category_Name
)
当我从Combobox中选择ProductCost
时,我想要的是在文本框中显示ProductPrice
,CategoryName
和ProductName
。我可以显示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)
这是我的表单形式:
请指导我如何显示CategoryName
。
这也是我用Product_Cost
和Product_Price
填充最佳方法的方法吗?
P / S:出于某种原因,我需要动态完成所有事情
答案 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
因此,您将使用此查询获取类别名称,只需在绑定其他人时绑定文本框。
我希望它会对你有所帮助。 :)