単純な 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 のリストのリスト
結果?
それは非常に緊急なので、助けの王様は大歓迎です。前もって感謝します。