日期:2014-05-17  浏览次数:20528 次

两个或多个DataSet或DataTable相加
DataSet或DataTable 的数据结构都是一样。如下:
DataSet1的数据:
产品   日期    数量  金额
产品1   01      12    100
产品2   01      2     230

DataSet2的数据:
产品   日期    数量  金额
产品1   01      120   2100
产品2   01      42    2230

想得到的数据:
产品   日期    数量  金额
产品1   01      132    2200
产品2   01      44     2460

------解决方案--------------------
帅哥督察提供
            var linq = from tb1 in dt1.AsEnumerable()
                       join tb2 in dt2.AsEnumerable()
                       on new { id = tb1.Field<string>("ProductID"), time = tb1.Field<string>("Time") } equals new { id = tb2.Field<string>("ProductID"), time = tb2.Field<string>("Time") } into des
                       from tb2 in des.DefaultIfEmpty()
                       select new { product = tb1.Field<string>("ProductID"), number = tb1.Field<int>("Number") + (tb2 == null ? 0 : tb2.Field<int>("Number")), money = tb1.Field<decimal>("Money") + (tb2 == null ? 0 : tb2.Field<decimal>("Money")) };
            foreach (var l in linq)