合並結構相同,不同,或多個DataTable


  • //兩個結構一樣的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 ;
  •   }
  • //多個 結構相同的DataTable合並
  •         public DataTable GetAllEntrysDataTable()
  •         {
  •             DataTable newDataTable = GetEntrysDataTable(0).Clone();
  •             object[] obj = new object[newDataTable.Columns.Count];
  •             for (int i = 0; i < entryGroups.GetEntryGroupCount(); i++)
  •             {
  •                 for (int j = 0; j < GetEntrysDataTable(i).Rows.Count; j++)
  •                 {
  •                     GetEntrysDataTable(i).Rows[j].ItemArray.CopyTo(obj, 0);
  •                     newDataTable.Rows.Add(obj);
  •                 }
  •             }
  •             return newDataTable;
  •         } 

  • 免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM