DataTable统计遇到的几种问题

来源:互联网 发布:网络借贷暂行管理办法 编辑:程序博客网 时间:2024/06/04 17:58

现在项目开发全用存储过程,一般不需要去添加一个新的,所以就经常性的需要对DataTable进行逻辑处理以取代在SQL中的分组、去重、统计累加等一系列操作。

细说下遇到的几个问题吧:

1、DataTable中有一个TotaAmou(支付金额)字段,需要进行累加,没必要去写个循环然后+=,所以百度到一种很简单的方式

string SaleAmount = ordDtls.Tables[0].Compute("Sum(TotaAmou)", "true").ToString();
重点在于compute()参数解释:第一个是sum(Totaamou),sum就是累加方法咯,如有需要也可以换成Aver(Totaamou)计算平均数。第二个参数是条件,比如可以改成

string SaleAmount = ordDtls.Tables[0].Compute("Sum(TotaAmou)", "TotaAmou>100").ToString();

2、DataTable中有一个price(单价)字段以及Numbers(销售量)两个字段,却需要求一个销售总额的统计 那解决的思路就是在DataTable加

一个临时字段赋值给单价跟数量的乘积,然后再compute

3、去重 现有订单表主键Orders_ID,订单详情表主键OrdDtl_ID。已查询出ordDtls=DataTable();一个订单可以对应多个订单详情。查出了订单详情所有满足要求的项。要统计

ordDtls里面包含多少个订单。

DataView dv = new DataView(ordDtls);

int number = dv.ToTable(true, "Orders_ID").Rows.Count;

结果:ordDtls.Rows.Count=38number =33

OK~

原创粉丝点击