LINQ的SQL表行的总和?

时间:2010-10-17 10:35:14

标签: c# .net linq-to-sql

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();

上行代码返回错误的结果! 你能指导我吗?感谢。

2 个答案:

答案 0 :(得分:4)

尝试:

decimal TotalPrice = SampleTable.Sum(q => q.number * q.price);

答案 1 :(得分:1)

试试这个

  var TotalPrice = from q in SampleTable.AsEnumerable()
                         let y = Convert.ToInt32(q["number"]) * Convert.ToInt32(q["price"])
                         select y;

      int totalPrice =  TotalPrice.Sum();