• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#对两个Datatable的结构相同进行合并

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 
 
  
        Datatable db
=null;
        DataTable dt 
= ds.Tables[0];
        
////两个datatable进行合并
         db = dt.Copy();
        DataRow[] foundRows 
= dt.Select();
        
for (int i = 0; i < foundRows.Length;i++)
        {
            db.ImportRow(foundRows[i]);
        }
  1. //两个结构一样的DT合并
  2. DataTable DataTable1 = new DataTable();
  3. DataTable DataTable2 = new DataTable();
  4. DataTable newDataTable = DataTable1.Clone();
  5. object[] obj = new object[newDataTable.Columns.Count];
  6. for (int i = 0; i < DataTable1.Rows.Count; i++)
  7. {
  8.     DataTable1.Rows[i].ItemArray.CopyTo(obj,0);
  9.     newDataTable.Rows.Add(obj);
  10. }
  11. for (int i = 0; i < DataTable2.Rows.Count; i++)
  12. {
  13.     DataTable2.Rows[i].ItemArray.CopyTo(obj,0);
  14.     newDataTable.Rows.Add(obj);
  15. }
  16. //两个结构不同的DT合并
  17. /// <summary>
  18.   /// 将两个列不同的DataTable合并成一个新的DataTable
  19.   /// </summary>
  20.   /// <param name="dt1">表1</param>
  21.   /// <param name="dt2">表2</param>
  22.   /// <param name="DTName">合并后新的表名</param>
  23.   /// <returns></returns>
  24.   private DataTable UniteDataTable( DataTable dt1 ,DataTable dt2 ,string DTName)
  25.   { 
  26.    DataTable dt3 = dt1.Clone();
  27.    forint i = 0 ;i < dt2.Columns.Count ;i ++ )
  28.    {
  29.     dt3.Columns.Add( dt2.Columns[i].ColumnName ) ;
  30.    }
  31.    object[] obj = new object[dt3.Columns.Count];
  32.    
  33.    for (int i = 0; i < dt1.Rows.Count; i++)
  34.    {
  35.     dt1.Rows[i].ItemArray.CopyTo(obj,0);
  36.     dt3.Rows.Add(obj);
  37.    }
  38.       
  39.    if( dt1.Rows.Count >= dt2.Rows.Count )
  40.    {
  41.     forint i = 0 ;i < dt2.Rows.Count ;i++ )
  42.     {
  43.      forint j = 0 ;j < dt2.Columns.Count ;j ++ )
  44.      {
  45.       dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
  46.      }
  47.     }
  48.    }
  49.    else
  50.    {
  51.     DataRow dr3 ;
  52.     forint i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )
  53.     {
  54.      dr3 = dt3.NewRow() ;
  55.      dt3.Rows.Add( dr3 ) ;
  56.     }
  57.     forint i = 0 ;i < dt2.Rows.Count ;i++ )
  58.     {
  59.      forint j = 0 ;j < dt2.Columns.Count ;j ++ )
  60.      {
  61.       dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
  62.      }
  63.     }
  64.    }
  65.    dt3.TableName = DTName ; //设置DT的名字
  66.    return dt3 ;
  67.   }
  68. //多个 结构相同的DataTable合并
  69.         public DataTable GetAllEntrysDataTable()
  70.         {
  71.             DataTable newDataTable = GetEntrysDataTable(0).Clone();
  72.             object[] obj = new object[newDataTable.Columns.Count];
  73.             for (int i = 0; i < entryGroups.GetEntryGroupCount(); i++)
  74.             {
  75.                 for (int j = 0; j < GetEntrysDataTable(i).Rows.Count; j++)
  76.                 {
  77.                     GetEntrysDataTable(i).Rows[j].ItemArray.CopyTo(obj, 0);
  78.                     newDataTable.Rows.Add(obj);
  79.                 }
  80.             }
  81.             return newDataTable;
  82.         } 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#取得站点跟目录发布时间:2022-07-10
下一篇:
C#进程的使用方法详解发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap