【发布时间】:2015-12-31 08:55:35
【问题描述】:
我没有使用实体框架。 有2个数据表,每个都有不同的编号。的列。有一个共同的列 - ItemId
如果是 Union,我会使用“Merge”,但不知道如何为这 2 个 DataTables 执行 Union All
public static void Main()
{
//First DataTable
DataTable dt1 = new DataTable();
dt1.Columns.Add("ItemId");
dt1.Columns.Add("Name");
dt1.Columns.Add("Color");
DataRow dr = dt1.NewRow();
dr["ItemId"] = "1";
dr["Name"] = "Name1";
dr["Color"] = "Color1";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr["ItemId"] = "2";
dr["Name"] = "Name2";
dr["Color"] = "Color2";
dt1.Rows.Add(dr);
//Second DataTable
DataTable dt2 = new DataTable();
dt2.Columns.Add("ItemId");
dt2.Columns.Add("Name");
dt2.Columns.Add("Price");
DataRow dr2 = dt2.NewRow();
dr2["ItemId"] = "1";
dr2["Name"] = "Name1";
dr2["Price"] = "100";
dt2.Rows.Add(dr2);
dr2 = dt2.NewRow();
dr2["ItemId"] = "2";
dr2["Name"] = "Name3";
dr2["Price"] = "200";
dt2.Rows.Add(dr2);
}
预期输出
ItemId Name Color Price
1 Name1 Color1
2 Name2 Color2
1 Name1 100
2 Name3 200
【问题讨论】:
-
我不知道如何解释“有一个公用列 - ItemId”,因为似乎有两列名称相同(
ItemId和Name)并且它们似乎正在被处理与您的预期输出相同。 -
我有点担心你想要的结果,因为它有重复的 ItemId。这种行为是否正确?
-
@KunalKakkad。是的,这种行为是正确的。 2 个数据表中的 ItemIds 可能相同
-
@Damien_The_Unbeliever。那是一个伪例子。在实际代码中,一列 ItemId 肯定是常见的。其他的可能相同也可能不同。