======下面是转贴的,结构相同的DataTable合并有个方法很简单的
====== DataTable.Merge (DataTable)将指定的 DataTable与当前的 DataTable 合并
====== DataTable.Merge (DataTable)将指定的 DataTable与当前的 DataTable 合并
- //两个结构一样的DT合并
- DataTableDataTable1=newDataTable();
- DataTableDataTable2=newDataTable();
- DataTablenewDataTable=DataTable1.Clone();
- object[]obj=newobject[newDataTable.Columns.Count];
- for(inti=0;i<DataTable1.Rows.Count;i++)
- {
- DataTable1.Rows[i].ItemArray.CopyTo(obj,0);
- newDataTable.Rows.Add(obj);
- }
- for(inti=0;i<DataTable2.Rows.Count;i++)
- {
- DataTable2.Rows[i].ItemArray.CopyTo(obj,0);
- newDataTable.Rows.Add(obj);
- }
- //两个结构不同的DT合并
- ///<summary>
- ///将两个列不同的DataTable合并成一个新的DataTable
- ///</summary>
- ///<paramname="dt1">表1</param>
- ///<paramname="dt2">表2</param>
- ///<paramname="DTName">合并后新的表名</param>
- ///<returns></returns>
- privateDataTableUniteDataTable(DataTabledt1,DataTabledt2,stringDTName)
- {
- DataTabledt3=dt1.Clone();
- for(inti=0;i<dt2.Columns.Count;i++)
- {
- dt3.Columns.Add(dt2.Columns[i].ColumnName);
- }
- object[]obj=newobject[dt3.Columns.Count];
- for(inti=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(inti=0;i<dt2.Rows.Count;i++)
- {
- for(intj=0;j<dt2.Columns.Count;j++)
- {
- dt3.Rows[i][j+dt1.Columns.Count]=dt2.Rows[i][j].ToString();
- }
- }
- }
- else
- {
- DataRowdr3;
- for(inti=0;i<dt2.Rows.Count-dt1.Rows.Count;i++)
- {
- dr3=dt3.NewRow();
- dt3.Rows.Add(dr3);
- }
- for(inti=0;i<dt2.Rows.Count;i++)
- {
- for(intj=0;j<dt2.Columns.Count;j++)
- {
- dt3.Rows[i][j+dt1.Columns.Count]=dt2.Rows[i][j].ToString();
- }
- }
- }
- dt3.TableName=DTName;//设置DT的名字
- returndt3;
- }
- //多个结构相同的DataTable合并
- publicDataTableGetAllEntrysDataTable()
- {
- DataTablenewDataTable=GetEntrysDataTable(0).Clone();
- object[]obj=newobject[newDataTable.Columns.Count];
- for(inti=0;i<entryGroups.GetEntryGroupCount();i++)
- {
- for(intj=0;j<GetEntrysDataTable(i).Rows.Count;j++)
- {
- GetEntrysDataTable(i).Rows[j].ItemArray.CopyTo(obj,0);
- newDataTable.Rows.Add(obj);
- }
- }
- returnnewDataTable;
- }