DataTable统计遇到的几种问题

本文介绍如何使用DataTable进行数据处理,包括支付金额的累加、销售额的计算及订单去重等操作。利用Compute方法简化数据统计流程,并通过添加临时字段实现单价与数量的乘积运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在项目开发全用存储过程,一般不需要去添加一个新的,所以就经常性的需要对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=38 number =33

OK~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值