两个结构一样的DT合并

//两个结构一样的DT合并 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); } //两个结构不同的DT合并 /// <summary>   /// 将两个列不同的DataTable合并成一个新的DataTable   /// </summary>   /// <param name="dt1">表1</param>   /// <param name="dt2">表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 ; //设置DT的名字    return dt3 ;   }

  感谢来自 的文章

本文来自德仔工作室 http://www.dezai.cn/Channel/SoftWareEngineer/ArticleShow.aspx?AI=67321

posted @ 2012-02-19 22:02  Lovey  阅读(254)  评论(0编辑  收藏  举报