1

これが可能かどうかはわかりませんが... 3 つのテーブルがあります: CustomerTable OrderHeaderTable OrderDetailTable

リレーションシップは、CustomerTable.CustomerNumber から OrderHeaderTable.CustomerNumber、OrderHeaderTable.OrderNumber から OrderDetail.OrderNumber です。

DevExpress XtraGrid を使用して情報を表示し、SQL ストアド プロシージャを使用してデータを取得しています。

OrderHeader と OrderDetail の間の関係を形成してグリッドに表示できるようにしたい/必要がありますが、これまでに使用したコード内でこれを機能させる方法がわかりません。

VBコードは次のとおりです。

    Dim bsOrders As New BindingSource
    Dim dsDataSetOrders As New DataSet
    Dim daDataAdapter As New SqlDataAdapter

    Using cmd As New SqlClient.SqlCommand("spViewOrders", GetOpenConnection) With {.CommandType = CommandType.StoredProcedure}
        With cmd.Parameters
            .Add(New SqlParameter("@Action", SqlDbType.Int)).Value = 44
            .Add(New SqlParameter("@Exists", SqlDbType.Int)).Direction = ParameterDirection.InputOutput
        End With

        daDataAdapter.SelectCommand = cmd
        daDataAdapter.Fill(dsDataSetOrders, "Orders")
        dsDataSetOrders.Relations.Add(New DataRelation("OrderHeader", dsDataSetOrders.Tables(0).Columns("Customer #"), _
                                                       dsDataSetOrders.Tables(1).Columns("Customer #")))

        bsOrders.DataSource = dsDataSetOrders
        bsOrders.DataMember = "Orders"
    End Using


    GridControl1.DataSource = bsOrders
    GridView1.BestFitColumns()
4

1 に答える 1

0

spViewOrders は OrderHeader と OrderDetail から必要なデータを取得しますか? その場合は、別のリレーションを追加するだけです。そうでない場合は、必要なデータを DataTable にプルし、それを dsDataSetOrders.Tables に追加してから、Relations に追加します。

于 2013-03-28T20:28:55.223 に答える