Linq到数据集-求和方法-指定的强制转换无效

Linq到数据集-求和方法-指定的强制转换无效,linq,linq-to-objects,Linq,Linq To Objects,我得到的错误是指定的强制转换对此语句无效。索引3中的字段在来自数据库的数据表中是基于浮点的。我甚至尝试用int和float替换Decimal。它不起作用 dtData是一个数据表obj var aggrVal = dtData.AsEnumerable().Sum(k => k.Field<Decimal>(3)); 请建议 var aggrVal = dtData.AsEnumerable().Sum(k => k.Field<Decimal>(3));

我得到的错误是指定的强制转换对此语句无效。索引3中的字段在来自数据库的数据表中是基于浮点的。我甚至尝试用int和float替换Decimal。它不起作用

dtData是一个数据表obj

var aggrVal = dtData.AsEnumerable().Sum(k => k.Field<Decimal>(3));
请建议

var aggrVal = dtData.AsEnumerable().Sum(k => k.Field<Decimal>(3));
改为

var aggrVal = dtData.AsEnumerable().Sum(k => k.Field<Double>(3)); 

成功了。该列的数据类型是浮点sql端,但在.NET上它需要与Double匹配。

能否尝试检查该列的实际数据类型:dtData.Columns[3]。datatype通过将数据转换为List dtData.ToList并使用for/foreach循环迭代来调试问题。然后查看问题数据的外观。我的猜测是,您的字段可以为空,您需要转换为“Decimal”,数据类型为Double。我想我需要将它转换为整数。它与Double一起工作!!