1个回答
2015-06-12
展开全部
用linq来实现,先定义两个dt,这个可以换成你程序中的
DataTable dt1 = new DataTable(); //第一个datatable
DataTable dt2 = new DataTable(); //第二个datatable
思路:
1.根据某个字段,找到dt1和dt2中重复的数据集合(我这里用的是Id,只要id相同我就认为是重复的数据)
2.在dt1中减去上面找到的重复的集合,就是在dt1中取重复数据的补集。
var dt3 = from r in dt1.AsEnumerable() where !(from rr in dt2.AsEnumerable() select rr.Field<int>("Id")).Contains(r.Field<int>("Id")) select r;
DataTable dt1 = new DataTable(); //第一个datatable
DataTable dt2 = new DataTable(); //第二个datatable
思路:
1.根据某个字段,找到dt1和dt2中重复的数据集合(我这里用的是Id,只要id相同我就认为是重复的数据)
2.在dt1中减去上面找到的重复的集合,就是在dt1中取重复数据的补集。
var dt3 = from r in dt1.AsEnumerable() where !(from rr in dt2.AsEnumerable() select rr.Field<int>("Id")).Contains(r.Field<int>("Id")) select r;
追问
两表列数可能会有不同,linq不是只有在相同表结构的情况下才可以吗
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询