1 /// <summary>
2 /// 将DataTable集合 B加入到DataTable A中,应用于两个或以上的只有单行数据的无主键的datatable的合并
3 /// </summary>
4 /// <param name="ArrOrigeon">A</param>
5 /// <param name="ArrAdded">B</param>
6 /// <returns>合并后的DataTable</returns>
7 public static sysDataTable Union(this sysDataTable tbOrigeon, params sysDataTable[] tbAdded)
8 {
9 sysDataTable arrs = new sysDataTable();
10 //向tbOrigeon表增加主键
11 tbOrigeon.Columns.Add("id", typeof(int));
12 tbOrigeon.Rows[0]["id"] = 1;
13 tbOrigeon.PrimaryKey = new System.Data.DataColumn[]{tbOrigeon.Columns["id"]};
14 arrs = tbOrigeon;
15 foreach (sysDataTable dt in tbAdded)
16 {
17 if (dt.Columns.Count > 0)
18 {
19 //向dt表增加主键
20 dt.Columns.Add("id", typeof(int));
21 dt.Rows[0]["id"] = 1;
22 dt.PrimaryKey = new System.Data.DataColumn[] { dt.Columns["id"] };
23 //合并表
24 arrs.Merge(dt, false);
25 }
26 }
27 //将主键置为空
28 arrs.PrimaryKey = null;
29 //删除临时主键
30 arrs.Columns.Remove("id");
31 return arrs;
32 }