2013-06-17 2 views
0

У меня возникли проблемы с отображением сведений о продукте из двух таблиц.Выберите значение из 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) 

Это мой, как моя форма выглядит следующим образом: Form example

Просьба указать, как мне показать CategoryName.

Также, что я использую для заполнения Product_Cost и Product_Price лучший способ?

P/S: По некоторым причинам мне нужно, чтобы все было сделано динамически

+0

Ваша структура говорит 'ProductID', но вы привязываетесь к' Product_ID'. – LarsTech

+0

Ах, извините, это Product_ID. Я понял это неправильно :) Сделал редактирование. –

ответ

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 

Таким образом, вы получите имя категории, используя этот запрос, просто связывания текстовое поле, поскольку вы являетесь обязательным для других.

Я надеюсь, что это вам поможет. :)

+0

Спасибо, сэр! Я никогда не связывался с запросом раньше, всегда использовал только INSERT, DELETE и SELECT. Это действительно помогает мне! Благодаря! :) –

Смежные вопросы