两个或多个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)
Response.Write(string.Format("{0} {1} {2} <br/>", l.product, l.number, l.money));