0

単純な DataRow Merge を作成しようとしていますが、どういうわけか正しいデータを取得できません。

2D DataRow 配列を構築したい

これは、dataTables と dataRelations と入力された dataRows を含む単純な dataSet 定義です。

        DataSet ds = new DataSet();
        ds.Tables.AddRange(new DataTable[] { 
            new DataTable("Person"),
            new DataTable("Car"),
            new DataTable("Color"),
            new DataTable("RGB"),
            new DataTable("Bicycle")
        });
        ds.Tables["Person"].Columns.AddRange(new DataColumn[] {
            new DataColumn("id", typeof(int)),
            new DataColumn("FName", typeof(string))
        });
        ds.Tables["Car"].Columns.AddRange(new DataColumn[] {
            new DataColumn("id", typeof(int)),
            new DataColumn("PersonId", typeof(int)),
            new DataColumn("CType", typeof(string))
        });
        ds.Tables["Color"].Columns.AddRange(new DataColumn[] {
            new DataColumn("id", typeof(int)),
            new DataColumn("CarId", typeof(int)),
            new DataColumn("ColorName", typeof(string))
        });
        ds.Tables["RGB"].Columns.AddRange(new DataColumn[] {
            new DataColumn("id", typeof(int)),
            new DataColumn("ColorId", typeof(int)),
            new DataColumn("HEX", typeof(string))
        });
        ds.Tables["Bicycle"].Columns.AddRange(new DataColumn[] {
            new DataColumn("id", typeof(int)),
            new DataColumn("PersonId", typeof(int)),
            new DataColumn("Age", typeof(string))
        });
        ds.Tables["Person"].ChildRelations.Add(new DataRelation("PersonCar", ds.Tables["Person"].Columns["id"], ds.Tables["Car"].Columns["PersonId"]));
        ds.Tables["Car"].ChildRelations.Add(new DataRelation("CarColor", ds.Tables["Car"].Columns["id"], ds.Tables["Color"].Columns["CarId"]));
        ds.Tables["Color"].ChildRelations.Add(new DataRelation("ColorRGB", ds.Tables["Color"].Columns["id"], ds.Tables["RGB"].Columns["ColorId"]));
        ds.Tables["Person"].ChildRelations.Add(new DataRelation("PersonBicycle", ds.Tables["Person"].Columns["id"], ds.Tables["Bicycle"].Columns["PersonId"]));

        ds.Tables["Person"].Rows.Add(0, "John");
        ds.Tables["Person"].Rows.Add(1, "Jenny");
        ds.Tables["Person"].Rows.Add(2, "Adam");

        ds.Tables["Car"].Rows.Add(0, 0, "Renault");
        ds.Tables["Car"].Rows.Add(1, 0, "Jeep");
        ds.Tables["Car"].Rows.Add(2, 1, "Subaru");
        ds.Tables["Car"].Rows.Add(3, 2, "Daewoo");

        ds.Tables["Color"].Rows.Add(0, 0, "Red");
        ds.Tables["Color"].Rows.Add(1, 1, "Black1");
        ds.Tables["Color"].Rows.Add(2, 1, "Black2");
        ds.Tables["Color"].Rows.Add(3, 1, "Black3");
        ds.Tables["Color"].Rows.Add(4, 2, "Green");
        ds.Tables["Color"].Rows.Add(5, 3, "Blue");

        ds.Tables["RGB"].Rows.Add(0, 1, "GREEN RGB1");
        ds.Tables["RGB"].Rows.Add(1, 1, "GREEN RGB2");

        ds.Tables["Bicycle"].Rows.Add(2, 0, "Mount.");

次の結果を持つ 2D DataRow 配列を取得したい:

        John, Renault, Red
        John, Jeep, Black1, GREEN RGB1
        John, Jeep, Black1, GREEN RGB2
        John, Jeep, Black2
        John, Jeep, Black3          
        John, Mount.
        Jenny, Subaru, Green
        ....

DataTable.Merge を使いたくない! では、2D 配列に値を設定する再帰関数を作成する方法について説明します。

DataRows のリストのリスト

結果?

それは非常に緊急なので、助けの王様は大歓迎です。前もって感謝します。

4

1 に答える 1

0

たぶん、データセットをトラバースしますか?しかし、私はあなたを助けることができません。よろしく。

于 2012-10-09T06:10:01.237 に答える