将两个DataTable合并成一个DataTable

//1.两个结构一样的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);
}

//2.两个结构不同的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 ;
  }

时间: 2024-12-30 20:01:31

将两个DataTable合并成一个DataTable的相关文章

asp.net网站-ASP.NET怎么把两个网站合并成一个

问题描述 ASP.NET怎么把两个网站合并成一个 做了一个中文网站,一个英文的,怎么把这俩网站合并成一个运行,web.config文件怎么配置,数据库怎么办?求指教. 解决方案 收藏两个学习asp.net 的好网站 解决方案二: http://www.cnblogs.com/wenjl520/archive/2010/10/17/1853367.html 解决方案三: 一个网站,支持多语言不就行了

C#中两个具有相同主键,但是其他列不同的datatable怎么合并成一个啊.

问题描述 C#中两个具有相同主键,但是其他列不同的datatable怎么合并成一个啊. 查到了一些要么是两个表完全相同,要么是完全不同...这种有一列相同的怎么写啊 解决方案 用linq from x in dt1.AsEnumerable() join y in dt2.AsEnumerable() on x.Field<int>("id") equals y.Field<int>("id") select new { x, y }; 解决

用jxl把两个excel的sheet合并成一个excel

问题描述 怎样用jxl把两个excel的sheet合并成一个excel 解决方案 解决方案二:可以用importsheet()方法

有两个Dataset1和dataset2,他们的datatabe结构相同, 能不能把这两个dataset合并成为一个呢?

问题描述 有两个Dataset1和dataset2,他们的datatabe结构相同,能不能把这两个dataset合并成为一个呢?比如说,他们的datatable的结构是name,age,address.我如何才能把他们合并. 解决方案 解决方案二:用一个DataSet,向DataSet添加一个DataTalbe就可以佬解决方案三:引用1楼bugttp的回复: 用一个DataSet,向DataSet添加一个DataTalbe就可以佬 解决方案四:用一个DataSet,里面添加两个DataTable

将多个Word文档合并成一个

  作中我们常常需要将多个Word文档合并成一个,信息量少的时候可以直接复制粘贴.信息量多的时候,可以试试这样的方法:选择"插入"菜单>点击"对象"选项,并在下拉菜单中选择"文件中的文字">选择要合并到当前文档中的文件,点击"插入"即可

Adobe Acrobat 怎么把多张图片合并成一个PDF

  1.首先准备三张图片,如图所示: 2.打开Adobe Acrobat 软件,点击"文件"菜单下的"创建PDF",打开"创建PDF"菜单,如图所示: 3.在"创建PDF"菜单下,点击"从多个文件",打开"从多个文档创建PDF"界面,如图所示: 4.在"从多个文档创建PDF"界面中,点击"浏览",选中多个图片,如图所示: 5.在这里,可以点击&qu

android:将两个类合并到一个activity中有什么合适的方法?

问题描述 android:将两个类合并到一个activity中有什么合适的方法? 我有两个类,一个是MainActivity扩展了activity,另外一个是AlarmReceiver扩展了BroadcastReceiver.我怎么能够消除AlarmReceiver,而是在MainActivity实现这个功能?我知道不可能同时扩展两个类,所以我想知道最好的方法应该是什么? MainActivity public class MainActivity extends Activity { @Ove

java操作excel,用jxl将多个excel文件合并成一个多sheet的excel文件,颜色会出错

问题描述 java操作excel,用jxl将多个excel文件合并成一个多sheet的excel文件,颜色会出错 程序代码如下: public class Main { public static void main(String[] args) { try { InputStream fis1 = new FileInputStream("D:/fei/testfiles/2G囤卡量.xls"); InputStream fis2 = new FileInputStream(&quo

sql 查询如何实现多个相同的记录合并成一个,举例如下,求指教。

问题描述 sql 查询如何实现多个相同的记录合并成一个,举例如下,求指教. 解决方案 sql 查询不能返回字表的吧, 你a列的A对应b列的三行肯定是不行的,如果你要取最大值可以 select a, max(b) from table group by a 解决方案二: 这不是sql的活,是你界面展现的事,你可以自己自定义表格,或者第三方的表格,比如dev系列 解决方案三: sql干不了,在html页面生成时,动态的设置即可(table colspan). 解决方案四: 数据库一条一记录的,这个的