我正在尝试创建一个简单的DataRow Merge,但不知何故我没有得到正确的数据。
我想构建一个2D DataRow数组
这是一个简单的dataSet定义,包含dataTables和dataRelations以及填充的dataRows。
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列表列表
结果吗?
这是非常迫切的,所以每个帮助之王都受到欢迎。 提前谢谢。
答案 0 :(得分:0)
可能遍历数据集?但我无法帮助你。问候。