2016-04-07 47 views
0

這裏是我的代碼:如何在查詢中獲得小數點的運行總數?

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

首先,它應該是:

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

,而不是

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

否則,你也可以使用LINQ點心,如:

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

如果ITEMCOST不是decimal類型,那麼你可以明確地轉換它。

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

我收到以下錯誤: 在mscorlib.ni.dll中發生類型'System.InvalidCastException'的異常,但未在用戶代碼中處理 A附加信息:無法投射「HDW_Order.Models.orderDetails」類型的對象來鍵入「System.IConvertible」。 – RdDragon

+0

mscorlib.ni.dll中發生類型爲「System.InvalidCastException」的異常,但未在用戶代碼中處理其他信息:無法投射類型爲'HDW_Order.Models.orderDetails'的對象以鍵入'System.IConvertible'。 – RdDragon

+0

'conn.Table ()'返回什麼? – Shyju

0

使用LINQ方法,你可以寫你的查詢是這樣的:

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