提供了通过Linq对数据集进行合计非常方法,可以减少了与数据库的交互,提高系统性能,以下是sum示示例:
1、对字典对象的sum
(Function(a) ) 'dis是Dictionary
当然也可以用
("Sum(USM_TOTAL_CASH_MONEY)", "")
2、对datatable的单字段sum
(From row In tmptable Select (Of Decimal)("customer_ds")).Sum() '
3、对DataTable的多字段sumtmptable是DataTable对象,customer_ds是合计字段
Dim sumtable2 = From r In MyTb Group r By Key = New With {Key .Key = "合计"} Into g = Group Select New With {.key = Key, .totalMoney = (Function(x) IIf(IsDBNull(x("A1")), 0, x("A1"))), .saleMoney = (Function(x) IIf(IsDBNull(x("A2")), 0, x("A2"))), .CaSh = (Function(x) IIf(IsDBNull(x("A3")), 0, x("A3"))), .CardPay = (Function(x) IIf(IsDBNull(x("A4")), 0, x("A4"))), .OtherPay = (Function(x) IIf(IsDBNull(x("A5")), 0, x("A5"))), .CkPay = (Function(x) IIf(IsDBNull(x("A6")), 0, x("A6"))), .DyqPay = (Function(x) IIf(IsDBNull(x("A7")), 0, x("A7"))), .Minus = (Function(x) IIf(IsDBNull(x("A8")), 0, x("A8"))), .orders = (Function(x) IIf(IsDBNull(x("A9")), 0, x("A9"))), .newCards = (Function(x) IIf(IsDBNull(x("A10").ToString().Split("/")(0)), 0, x("A11").ToString().Split("/")(0))) & "/" & (Function(x) IIf(IsDBNull(x("A11").ToString().Split("/")(1)), 0, x("A11).ToString().Split("/")(1))), .cardInNums = (Function(x) IIf(IsDBNull(x("充卡张数/金额").ToString().Split("/")(0)), 0, x("充卡张数/金额").ToString().Split("/")(0))) & "/" & (Function(x) IIf(IsDBNull(x("充卡张数/金额").ToString().Split("/")(1)), 0, x("充卡张数/金额").ToString().Split("/")(1))) }