【转载】关于如何实现 DataTable合并【结构相同或相异】

DataTable合并方法如下:

本文转载于http://blog.csdn.net/gisfarmer/article/details/3900023【骆驼空间站

两个结构一样的DataTable合并

[c-sharp]  view plain copy
  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. //或者  方法2:将表2复制到表1,在表1中添加
  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 plain copy
  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.  forint 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.   forint i = 0 ;i < dt2.Rows.Count ;i++ )   
  27.   {   
  28.    forint 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.   forint i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )   
  38.   {   
  39.    dr3 = dt3.NewRow() ;   
  40.    dt3.Rows.Add( dr3 ) ;   
  41.   }   
  42.   forint i = 0 ;i < dt2.Rows.Count ;i++ )   
  43.   {   
  44.    forint 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. }   

欢迎转载,转载请注明出处【来自》》骆驼空间站


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值