取两个数据结构相同的datatable的差集

1.问题描述

今天做一个数据维护功能,数据库中有一张表A,需要定期维护Excel文件中的数据到这张表,Excel文件的数据与表A的数据关系为:Excel包含A;

需要做的工作是,过滤掉A表中已有的数据,剩下的就是需要更新的数据了,然后把两个数据结构的差集插入到表A中。

2.解决办法

将Excel中的数据通过OleDb读取到DataTable中,记为dt1;将表A中的数据读取到DataTable中,记为dt2;创建一个DataTable对象dt3用来接受差集。然后将dt3插入到表A。

代码如下:

DataTable dt3 = new DataTable();//接受差集的dt3
          dt3.Columns.Add("HPHM", typeof(string));//初始化dt3的数据结构,与dt1和dt2保持一致
          dt3.Columns.Add("HPZL", typeof(string));
          dt3.Columns.Add("CLLX", typeof(string));
          dt3.Columns.Add("SYXZ", typeof(string));
          dt3.Columns.Add("SYR", typeof(string));
                                   
foreach (DataRow row in dt1.Rows)//遍历excel数据集
{
	DataRow[] rows = dt2.Select("HPHM='" + row[0].ToString().Trim() + "' and HPZL='" + row[1].ToString().Trim() + "'");//查询excel数据集是否存在于表A,如果存在赋值给DataRow集合
        if (rows.Length == 0)//判断如果DataRow.Length为0,即该行excel数据不存在于表A中,就插入到dt3
        {
        	dt3.Rows.Add(row[0], row[1], row[2], row[3], row[4]);
        }
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值