打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
两个DataTable合并为一个DataTable

两个结构一样的DataTable合并

 

[c-sharp] view plaincopy
  1. DataTable DataTable1 = new DataTable();      
  2. DataTable DataTable2 = new DataTable();      
  3. DataTable newDataTable = DataTable1.Clone();      
  4.     
  5. object[] obj = new object[newDataTable.Columns.Count];      
  6. for (int i = 0; i < DataTable1.Rows.Count; i++)      
  7. {      
  8.     DataTable1.Rows[i].ItemArray.CopyTo(obj,0);      
  9.     newDataTable.Rows.Add(obj);      
  10. }      
  11. for (int i = 0; i < DataTable2.Rows.Count; i++)      
  12. {      
  13.     DataTable2.Rows[i].ItemArray.CopyTo(obj,0);      
  14.     newDataTable.Rows.Add(obj);      
  15. }     
  16. //或者     
  17. DataTable DataTable1 = new DataTable();      
  18. DataTable DataTable2 = new DataTable();      
  19.     
  20. object[] obj = new object[DataTable1 .Columns.Count];      
  21. for (int i = 0; i < DataTable2.Rows.Count; i++)      
  22. {      
  23.     DataTable2.Rows[i].ItemArray.CopyTo(obj,0);      
  24.     DataTable1.Rows.Add(obj);      
  25. }    

 

两个结构不同的DataTable合并

 

[c-sharp] view plaincopy
  1. /// <summary>      
  2. /// 将两个列不同的DataTable合并成一个新的DataTable      
  3. /// </summary>      
  4. /// <param name="dt1">Table表1</param>      
  5. /// <param name="dt2">Table表2</param>      
  6. /// <param name="DTName">合并后新的表名</param>      
  7. /// <returns></returns>     
  8.     
  9. private DataTable UniteDataTable( DataTable dt1 ,DataTable dt2 ,string DTName)      
  10. {       
  11.  DataTable dt3 = dt1.Clone();      
  12.  for( int i = 0 ;i < dt2.Columns.Count ;i ++ )      
  13.  {      
  14.   dt3.Columns.Add( dt2.Columns[i].ColumnName ) ;      
  15.  }      
  16.  object[] obj = new object[dt3.Columns.Count];      
  17.        
  18.  for (int i = 0; i < dt1.Rows.Count; i++)      
  19.  {      
  20.   dt1.Rows[i].ItemArray.CopyTo(obj,0);      
  21.   dt3.Rows.Add(obj);      
  22.  }      
  23.           
  24.  if( dt1.Rows.Count >= dt2.Rows.Count )      
  25.  {      
  26.   for( int i = 0 ;i < dt2.Rows.Count ;i++ )      
  27.   {      
  28.    for( int j = 0 ;j < dt2.Columns.Count ;j ++ )      
  29.    {      
  30.     dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;      
  31.    }      
  32.   }      
  33.  }      
  34.  else      
  35.  {      
  36.   DataRow dr3 ;      
  37.   for( int i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )      
  38.   {      
  39.    dr3 = dt3.NewRow() ;      
  40.    dt3.Rows.Add( dr3 ) ;      
  41.   }      
  42.   for( int i = 0 ;i < dt2.Rows.Count ;i++ )      
  43.   {      
  44.    for( int j = 0 ;j < dt2.Columns.Count ;j ++ )      
  45.    {      
  46.     dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;      
  47.    }      
  48.   }      
  49.  }      
  50.  dt3.TableName = DTName ;      
  51.  return dt3 ;      
  52. }     

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
把两张DataTable拼接成一张全新的DataTable
获取DataTable的前n行的值
C#与EXCEL的数据交互(一)
实现DataGridView中行的上下移动
datagridview 整行上移下移
List转DataTable(反射)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服