您的位置:首页 > 其它

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

2013-11-01 16:08 447 查看
DataTable合并方法如下:

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

两个结构一样的DataTable合并

[c-sharp] view
plaincopy

DataTable DataTable1 = new DataTable();   

DataTable DataTable2 = new DataTable();   

DataTable newDataTable = DataTable1.Clone();   

  

object[] obj = new object[newDataTable.Columns.Count];   

for (int i = 0; i < DataTable1.Rows.Count; i++)   

{   

    DataTable1.Rows[i].ItemArray.CopyTo(obj,0);   

    newDataTable.Rows.Add(obj);   

}   

for (int i = 0; i < DataTable2.Rows.Count; i++)   

{   

    DataTable2.Rows[i].ItemArray.CopyTo(obj,0);   

    newDataTable.Rows.Add(obj);   

}  

//或者 
方法2:将表2复制到表1,在表1中添加

DataTable DataTable1 = new DataTable();   

DataTable DataTable2 = new DataTable();   

  

object[] obj = new object[DataTable1 .Columns.Count];   

for (int i = 0; i < DataTable2.Rows.Count; i++)   

{   

    DataTable2.Rows[i].ItemArray.CopyTo(obj,0);   

    DataTable1.Rows.Add(obj);   

}  

两个结构不同的DataTable合并 

[c-sharp] view
plaincopy

/// <summary>   

/// 将两个列不同的DataTable合并成一个新的DataTable   

/// </summary>   

/// <param name="dt1">Table表1</param>   

/// <param name="dt2">Table表2</param>   

/// <param name="DTName">合并后新的表名</param>   

/// <returns></returns>  

  

private DataTable UniteDataTable( DataTable dt1 ,DataTable dt2 ,string DTName)   

{    

 DataTable dt3 = dt1.Clone();   

 for( int i = 0 ;i < dt2.Columns.Count ;i ++ )   

 {   

  dt3.Columns.Add( dt2.Columns[i].ColumnName ) ;   

 }   

 object[] obj = new object[dt3.Columns.Count];   

    

 for (int i = 0; i < dt1.Rows.Count; i++)   

 {   

  dt1.Rows[i].ItemArray.CopyTo(obj,0);   

  dt3.Rows.Add(obj);   

 }   

       

 if( dt1.Rows.Count >= dt2.Rows.Count )   

 {   

  for( int i = 0 ;i < dt2.Rows.Count ;i++ )   

  {   

   for( int j = 0 ;j < dt2.Columns.Count ;j ++ )   

   {   

    dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;   

   }   

  }   

 }   

 else   

 {   

  DataRow dr3 ;   

  for( int i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )   

  {   

   dr3 = dt3.NewRow() ;   

   dt3.Rows.Add( dr3 ) ;   

  }   

  for( int i = 0 ;i < dt2.Rows.Count ;i++ )   

  {   

   for( int j = 0 ;j < dt2.Columns.Count ;j ++ )   

   {   

    dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;   

   }   

  }   

 }   

 dt3.TableName = DTName ;   

 return dt3 ;   

}   

欢迎转载,转载请注明出处【来自》》骆驼空间站
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: