0

2 つのテーブルから製品の詳細を表示するのに問題があります。

VS 2010 と MS Access データベースを使用しています。

私のデータベーステーブル構造は次のとおりです:

  • 製品( #Product_ID, Category_ID, Product_Name, Product_Cost)Product_Price

  • カテゴリ ( #Category_ID, Category_Name)

私が欲しいのは、コンボボックスから選択したときにテキストボックスに表示ProductCostすることですProductPrice。&を表示できますが、この 2 つのテーブルをリンクする方法がわからないため、表示できません。CategoryNameProductNameProductCostProductPriceCategoryName

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:何らかの理由で、すべてを動的に行う必要があります

4

1 に答える 1

1

You can use the join query like

 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

So, you will get the category name using this query, just bind the text box as you are binding for others.

I hope it will help you. :)

于 2013-06-17T12:07:17.143 に答える