两个DataTable的合拼

最近需要对不同结构的DataTable进行合拼,类似于外连接的方式。

在网上查了一下写法基本上都是循环之类,而我觉得应该对于这种情况C#应该有自己简单的方式。

因此发现了一东西。

首先,我发现网上都是循环做的

这是我的写法:

DataTable dt1=new DataTable();
DataTable dt2=new DataTable();

dt1.Columns.Add("ID",typeof(Int32));
dt1.Columns.Add("Date",typeof(DateTime));
dt1.Columns.Add("age",typeof(Int32));

dt2.Columns.Add("ID", typeof(Int32));
dt2.Columns.Add("Date", typeof(DateTime));
dt2.Columns.Add("score", typeof(Int32));
for (int i = 0; i < 10000; i++)
{
    DataRow dr1 = dt1.NewRow();
    dr1["ID"] = i;
    dr1["Date"] = DateTime.Now.AddDays(i);
    dr1["age"] = i;
    dt1.Rows.InsertAt(dr1, 0);

               
    DataRow dr2 = dt2.NewRow();
    dr2["ID"] = i;
    dr2["Date"] = DateTime.Now.AddDays(i);
    dr2["score"] = i;
    dt2.Rows.InsertAt(dr2, 0);
}

写了下来,觉得这样的确很别扭,而同结构的DataTable记得是Merge的,

在msdn上找了一下Merge的用法。

三个重载方法。第一、二个方法是常用,应该处理结构的DataTable

试试了第三个方法结果,发现别人的确提供了的

 

 dt1.PrimaryKey = new DataColumn[] { dt1.Columns["ID"], dt1.Columns["Date"] };  //这句一定要,不然没办法实现            
 dt1.Merge(dt2, false, MissingSchemaAction.AddWithKey);

 

同时,我测试了一下两种方式的速度,第二种的确优于第一种。

 

注:这是本人第一次写博客,欢迎指正。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值