如何在查询中获得总计小数?

时间:2016-04-07 16:44:01

标签: c# linq

这是我的代码:

decimal orderTot;
var orderTotalQry = from ot in conn.Table<orderDetails>()
                                where ot.ORDERNUMBER == orderDetailOrderNumber
                                select ot;

            foreach (orderDetails OD in orderTotalQry)
            {
                orderTot =+ Convert.ToDecimal(OD.ITEMCOST);

            };

我正在尝试获取查询结果的orderTot总和。

3 个答案:

答案 0 :(得分:0)

首先它应该是:

orderTot += Convert.ToDecimal(OD.ITEMCOST);

而不是

orderTot =+ Convert.ToDecimal(OD.ITEMCOST); //notice the `+` after `=`

否则你也可以使用LINQ Sum:

var sum = orderTotalQry.Sum(r=> r.ITEMCOST);

如果ITEMCOST不是decimal类型,那么您可以明确转换它。

答案 1 :(得分:0)

使用LINQ Sum方法。

var sum= orderTotalQry.Sum(f => Convert.ToDecimal(f));

假设orderTotalQry中的项目是非数字类型(例如:字符串)

如果orderTotalQry中的项目属于decimal / int类型,则您不需要Convert.ToDecimal来电。

var sum= orderTotalQry.Sum();

或者您可以在原始语句中使用Sum方法

var total= (from ot in conn.Table<orderDetails>()
                                where ot.ORDERNUMBER == orderDetailOrderNumber
                                select ot).Sum();

答案 2 :(得分:0)

使用linq方法,您可以像这样编写查询:

var orderTot = conn.Table<orderDetails>()
                   .Where(o => o.ORDERNUMBER == orderDetailOrderNumber)
                   .Sum(o => o.ITEMCOST);