VB.net 提供了通過Linq對數據集進行合計非常方法,可以減少了與數據庫的交互,提高系統性能,以下是sum示示例:
1、對字典對象的sum
dis.Sum(Function(a) a.Value) 'dis是Dictionary當然也可以用
Mytb.Compute("Sum(USM_TOTAL_CASH_MONEY)", "")2、對datatable的單字段sum(From row In tmptable Select row.Field(Of Decimal)("customer_ds")).Sum() 'tmptable是DataTable對象,customer_ds是合計字段3、對DataTable的多字段sumDim sumtable2 = From r In MyTb Group r By Key = New With {Key .Key = "合計"} Into g = Group Select New With {.key = Key, .totalMoney = g.Sum(Function(x) IIf(IsDBNull(x("A1")), 0, x("A1"))), .saleMoney = g.Sum(Function(x) IIf(IsDBNull(x("A2")), 0, x("A2"))), .CaSh = g.Sum(Function(x) IIf(IsDBNull(x("A3")), 0, x("A3"))), .CardPay = g.Sum(Function(x) IIf(IsDBNull(x("A4")), 0, x("A4"))), .OtherPay = g.Sum(Function(x) IIf(IsDBNull(x("A5")), 0, x("A5"))), .CkPay = g.Sum(Function(x) IIf(IsDBNull(x("A6")), 0, x("A6"))), .DyqPay = g.Sum(Function(x) IIf(IsDBNull(x("A7")), 0, x("A7"))), .Minus = g.Sum(Function(x) IIf(IsDBNull(x("A8")), 0, x("A8"))), .orders = g.Sum(Function(x) IIf(IsDBNull(x("A9")), 0, x("A9"))), .newCards = g.Sum(Function(x) IIf(IsDBNull(x("A10").ToString().Split("/")(0)), 0, x("A11").ToString().Split("/")(0))) & "/" & g.Sum(Function(x) IIf(IsDBNull(x("A11").ToString().Split("/")(1)), 0, x("A11).ToString().Split("/")(1))), .cardInNums = g.Sum(Function(x) IIf(IsDBNull(x("充卡張數/金額").ToString().Split("/")(0)), 0, x("充卡張數/金額").ToString().Split("/")(0))) & "/" & g.Sum(Function(x) IIf(IsDBNull(x("充卡張數/金額").ToString().Split("/")(1)), 0, x("充卡張數/金額").ToString().Split("/")(1))) }
新聞熱點
疑難解答