有一个SQL数据库中的表像下面:与LINQ的SQL表行的总和?
SampleTable:
-----------------------
id | number | price
-----------------------
1 | 3 | 300
2 | 1 | 200
3 | 5 | 100
4 | 10 | 10
5 | 30 | 30
6 | 1 | 500
-----------------------
我要计算总价象下面这样:
in each row => var SumOfEachRow = number * price;
Total Price = sum of SumOfEachRow;
因此Total Price
将是3100
现在,我想用LINQ来计算它。 例如:
int TotalPrice = from q in SampleTable
select new
{
TotalPrice = q.number * q.price
}.Sum();
上面的代码返回错误的结果!!! 你能指导我吗?谢谢。
我以前测试过它,它返回一个例外'算术溢出错误将表达式转换为数据类型int.' – 2010-10-17 13:38:42
这是因为你已售出大量的项目;)尝试将'TotalPrice'声明为'double'或'decimal'。相应地更新答案。 – 2010-10-17 13:43:04
我测试了'double',但我又收到异常。我用foreach完成了它.'var query = SampleTable.Select(q => q); foreach(查询中的var item)TotalPrice + = item.number * item.price'它不会返回异常!!! – 2010-10-17 14:38:41