0
Dim obj_DataTable As New System.Data.DataTable("Category")
    Dim obj_DataSet As New DataSet()
    'Declaring the array of DataColum to hold the Primary Key Columns
    Dim obj_PrimaryClmn(1) As System.Data.DataColumn
    Dim obj_DataRow As System.Data.DataRow
    Dim obj_DataRelation As DataRelation
    Dim writer As New System.IO.StringWriter

    obj_DataTable.Columns.Add(New System.Data.DataColumn("CategoryId"))
    obj_DataTable.Columns.Add(New System.Data.DataColumn("CategoryName"))

    obj_PrimaryClmn(0) = obj_DataTable.Columns(0)
    'Assigning the CategoryId column as Primary Key
    obj_DataTable.PrimaryKey = obj_PrimaryClmn

    'Entering the data in Category Table
    obj_DataRow = obj_DataTable.NewRow()
    obj_DataRow.Item(0) = 0
    obj_DataRow.Item(1) = "Select Category"
    obj_DataTable.Rows.Add(obj_DataRow)

    obj_DataRow = obj_DataTable.NewRow()
    obj_DataRow.Item(0) = 1
    obj_DataRow.Item(1) = "Computers"
    obj_DataTable.Rows.Add(obj_DataRow)

    obj_DataSet.Tables.Add(obj_DataTable)

    obj_DataTable.PrimaryKey = obj_PrimaryClmn

    Dim obj_DataRow1 As System.Data.DataRow
    Dim obj_DataTable1 As New System.Data.DataTable("Product")

    obj_DataTable1.Columns.Add(New System.Data.DataColumn("ProductId"))
    obj_DataTable1.Columns.Add(New System.Data.DataColumn("ProductName"))
    obj_DataTable1.Columns.Add(New System.Data.DataColumn("CategoryId"))

    obj_DataRow1 = obj_DataTable1.NewRow()
    obj_DataRow1.Item(0) = 1
    obj_DataRow1.Item(1) = "PHP"
    obj_DataRow1.Item(2) = 1
    obj_DataTable1.Rows.Add(obj_DataRow1)

    obj_DataSet.Tables.Add(obj_DataTable1)

    Dim obj_ParentClmn, obj_ChildClmn As DataColumn

    obj_ParentClmn = obj_DataSet.Tables("Category").Columns("CategoryId")
    obj_ChildClmn = obj_DataSet.Tables("Product").Columns("CategoryId")

    obj_DataRelation = New DataRelation("relation_Category_Product", obj_ParentClmn, obj_ChildClmn)

    obj_DataSet.Relations.Add(obj_DataRelation)

    obj_DataSet.WriteXml(writer)

    MsgBox(writer.ToString())

このコードは実行されます。親テーブルと子テーブルの間には関係があります。このコードは、最初に最初のxmlを表示し、2番目のテーブルのxmlを次々に表示します。私はこの方法は必要ありません。関係があるため、xmlはxmlの最初のテーブルとその2番目のテーブルを最初のテーブルの子ノードとして表示する必要があります。どうしてそれが可能でしょうか?私を助けてください。

4

1 に答える 1

1

リレーションタイプをNested以下のコードのように設定すると、子テーブルがXMLのサブノードとして入力されます。

obj_DataRelation = New DataRelation("relation_Category_Product", obj_ParentClmn, obj_ChildClmn)
obj_DataRelation.Nested = True
obj_DataSet.Relations.Add(obj_DataRelation)

ノードのネスト、優れた知識について詳しくは、こちらを参照してください

于 2012-05-21T13:17:11.617 に答える