vb.net Linq实战

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的多字段sum

 Dim 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")),x("A1"))),.saleMoney = g.Sum(Function(x) IIf(IsDBNull(x("A2")),x("A2"))),.CaSh = g.Sum(Function(x) IIf(IsDBNull(x("A3")),x("A3"))),.CardPay = g.Sum(Function(x) IIf(IsDBNull(x("A4")),x("A4"))),.OtherPay = g.Sum(Function(x) IIf(IsDBNull(x("A5")),x("A5"))),.CkPay = g.Sum(Function(x) IIf(IsDBNull(x("A6")),x("A6"))),.DyqPay = g.Sum(Function(x) IIf(IsDBNull(x("A7")),x("A7"))),.Minus = g.Sum(Function(x) IIf(IsDBNull(x("A8")),x("A8"))),.orders = g.Sum(Function(x) IIf(IsDBNull(x("A9")),x("A9"))),.newCards = g.Sum(Function(x) IIf(IsDBNull(x("A10").ToString().Split("/")(0)),x("A11").ToString().Split("/")(0))) & "/" &
                                           g.Sum(Function(x) IIf(IsDBNull(x("A11").ToString().Split("/")(1)),x("A11).ToString().Split("/")(1))),.cardInNums = g.Sum(Function(x) IIf(IsDBNull(x("充卡张数/金额").ToString().Split("/")(0)),x("充卡张数/金额").ToString().Split("/")(0))) & "/" &
                     g.Sum(Function(x) IIf(IsDBNull(x("充卡张数/金额").ToString().Split("/")(1)),x("充卡张数/金额").ToString().Split("/")(1)))
                              }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐