var result = (from DataRow dr in dt.Rows
join DataRow row in bgdl.Rows on dr["TDATETIME"] equals row["TDATETIME"] into a
from l in a.DefaultIfEmpty()
group l by new { TimePeriod = Convert.ToString(l["TDATETIME"]), Total = Convert.ToInt32(l["Total"]), BargainTo = Convert.ToDecimal(l["BargainTo"]) }
into b
orderby b.Key.TimePeriod ascending
select
new
{
b.Key.TimePeriod,
BargainTo = b.Sum(i => Convert.ToDecimal(i["BARGAINTO"])),
b.Key.Total
}).ToList();
dt 表结构 TDATETIME BARGAINTO
bgdl 表结构 TDATETIME Total
均为DataTable,通过 TDATETIME链接
对 dt 表的BARGAINTO 列 进行sum 计算
BargainTo = b.Sum(i => Convert.ToDecimal(i["BARGAINTO"])),[color=#FF0000] 该行报错 Column 'BargainTo' does not belong to table .[/color]
请教高手!
将两个table转换为 List<T>,就解决了;但还是想知道 用linq join两个datatable 统计怎么操作?是在没分了,抱歉啊
你把"BargainTo"改为"BARGAINTO"就行了。
将
BargainTo = b.Sum(i => Convert.ToDecimal(i["BARGAINTO"])),
改为
b.Sum(i => Convert.ToDecimal(i["BARGAINTO"])),
试试
好的,我试试
现在的错误
@weblogical:
“BargainTo = b.Sum(i => Convert.ToDecimal(i["BARGAINTO"])),该行报错 Column 'BargainTo' does not belong to table .”。
对这句表示怀疑。BargainTo = Convert.ToDecimal(l["BargainTo"]) 这句倒是有可能报这个错误。确认l["BargainTo"],这个I属于的DataTable有没有"BargainTo"列。
@C#开发人员: 可能我钻到死胡同了,茫然不知所措。
请大侠指点迷津!
@C#开发人员: 这句没错
@weblogical:
你如何确认这句没错的?
@C#开发人员: I'm sure.