本文介绍一个简单的方法,不需要逐条记录进行计算就可以轻松的获得DataTable中的记录统计结果。这个简单的方法就是调用功能强大的DataTable的函数Compute。 一、调用说明(仅以C#为例,下同): public object Compute(string strExpression,string strFilter) 参数: strExpression:要计算的表达式字符串,基本上类似于Sql Server中的统计表达式 strFilter:统计的过滤字符串,只有满足这个过滤条件的记录才会被统计 二、调用举例: 1。统计所有性别为女的销售员的数量: 2。统计所有销售员中年龄大于20岁的 3。统计销售产品的平均价格 4。统计产品代码为1的产品销售数量: 5。统计所有产品的销售总金额: 这里一个问题是:DataTable的统计功能没有SqlServer强,这个统计是错误的,因为Compute的统计不具备Sum(Quantity*Price)这样数据的功能。那怎么办呢?
对于这样复杂数据的统计,我们可以在DataTable中创建一个新的字段来完成,比如Amount,同时设置该字段的Expression为Quantity*Price,这样我们就可以使用统计功能了: 以上都是计算每一列的合计,要添加一行求合计可以使用下面的方法: System.Data.DataRow dataRow=dataSet.Tables[0].NewRow() 然后就是统计了: fldCnt=DT.Cols.Count; for( i=0 DT.Rows.Add(dataRow);本文介绍一个简单的方法,不需要逐条记录进行计算就可以轻松的获得DataTable中的记录统计结果。这个简单的方法就是调用功能强大的DataTable的函数Compute。 一、调用说明(仅以C#为例,下同): public object Compute(string strExpression,string strFilter) 参数: strExpression:要计算的表达式字符串,基本上类似于Sql Server中的统计表达式 strFilter:统计的过滤字符串,只有满足这个过滤条件的记录才会被统计 二、调用举例: 1。统计所有性别为女的销售员的数量: 2。统计所有销售员中年龄大于20岁的 3。统计销售产品的平均价格 4。统计产品代码为1的产品销售数量: 5。统计所有产品的销售总金额: 这里一个问题是:DataTable的统计功能没有SqlServer强,这个统计是错误的,因为Compute的统计不具备Sum(Quantity*Price)这样数据的功能。那怎么办呢?
对于这样复杂数据的统计,我们可以在DataTable中创建一个新的字段来完成,比如Amount,同时设置该字段的Expression为Quantity*Price,这样我们就可以使用统计功能了: 以上都是计算每一列的合计,要添加一行求合计可以使用下面的方法: System.Data.DataRow dataRow=dataSet.Tables[0].NewRow() 然后就是统计了: fldCnt=DT.Cols.Count; for( i=0 DT.Rows.Add(dataRow); |
|
来自: 绚爷好人图书馆 > 《操蛋的 asp.net》