日期:2014-05-18 浏览次数:20943 次
DataTable1.Cast<DataRow>().Union(DataTable2.Cast<DataRow>()).GroupBy(x => x["id"]).Select(x => x.First()).Except(DataTable1.Cast<DataRow>()).ToList().ForEach(x => { DataTable1.Rows.Add(x); });
------解决方案--------------------
[code=c#]
DataTable srcTable = new DataTable();
srcTable.Columns.Add("id");
srcTable.Columns.Add("col1");
srcTable.Columns.Add("col2");
for (int i = 0; i < 5; i++)
{
DataRow dr = srcTable.NewRow();
dr["id"] = i;
srcTable.Rows.Add(dr);
}
DataTable newTable = new DataTable();
newTable.Columns.Add("id");
newTable.Columns.Add("col1");
newTable.Columns.Add("col2");
for (int i = 0; i < 15; i++)
{
DataRow dr = newTable.NewRow();
dr["id"] = i;
dr["col1"] = string.Format("a{0}", i);
dr["col2"] = string.Format("b{0}", i);
newTable.Rows.Add(dr);
}
foreach (DataRow dr in newTable.Rows)
{
DataRow [] drs = srcTable.Select(string.Format("id={0}",dr["id"].ToString()));
if (drs.Count()==0)
{
DataRow newdr = srcTable.NewRow();
newdr["id"] = dr["id"];
newdr["col1"] = dr["col2"];
newdr["col2"] = dr["col2"];
srcTable.Rows.Add(newdr);
}
else
{
foreach (DataRow item in drs)
{
item["col1"] = dr["col1"];
item["col2"] = dr["col2"];
}
srcTable.AcceptChanges();
}
}
//循环srcTable表
foreach (DataRow item in srcTable.Rows)
{
Response.Write(string.Format("id:{0}|col1{1}|col2{2}",item["id"],item["col1"],item["col2"]));
Response.Write(" <br/>");
}
[/code]
------解决方案--------------------