日期:2014-05-18 浏览次数:21132 次
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]
------解决方案--------------------