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