这是我的代码:
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总和。
答案 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);