У меня возникла проблема с отображением сведений о продукте из двух таблиц.
Я использую VS 2010 и базу данных MS Access.
Моя структура таблицы базы данных выглядит следующим образом:
Продукт (
#Product_ID
,Category_ID
,Product_Name
,Product_Cost
,Product_Price
)Категория (
#Category_ID
,Category_Name
)
Я хочу отображать ProductCost
, ProductPrice
и CategoryName
в текстовом поле, когда я выбираю ProductName
из поля со списком. Я могу отобразить ProductCost
и ProductPrice
, но не могу отобразить CategoryName
, потому что не знаю, как связать эти две таблицы вместе.
Код, который я использую для заполнения Combobox ProductName:
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: По какой-то причине мне нужно, чтобы все делалось динамически
ProductID
, но вы привязаны кProduct_ID
. - person LarsTech   schedule 17.06.2013