在DataTable 中可能会涉及到各种各样的计算,其实我们可以使用DataTable.Compute方法
public Object Compute(string expression,string filter)
参数
-
expression
-
类型:String
要计算的表达式。
-
filter
-
类型:String
要限制在表达式中进行计算的行的筛选器。
返回值
类型:Object设置为计算结果。
expression 参数需要聚合函数。例如,以下是合法表达式:
Count(Quantity)
但是以下表达式不合法:
Sum (Quantity * UnitPrice)
如果必须针对两列或多列执行操作,则应该创建 DataColumn,并将它的 Expression 属性设置为适当的表达式,然后针对结果列使用聚合表达式。在这种情况下,假定有一个名为“total”的 DataColumn,并且 Expression 属性设置为:
"Quantity * UnitPrice"
Compute 方法的表达式参数将为:
Sum(total)
第二个参数 filter 确定在表达式中使用哪些行。例如,如果该表包含名为“colDate”的日期列,则可用以下表达式限制这些行:
colDate > 1/1/99 AND colDate < 17/1/99
Eg:
//下面的示例针对标识号为五的销售人员,对名为“Total”的列的值求和。 private void ComputeBySalesSalesID(DataSet dataSet) { // Presumes a DataTable named "Orders" that has a column named "Total." DataTable table; table = dataSet.Tables["Orders"]; // Declare an object variable. object sumObject; sumObject = table.Compute("Sum(Total)", "EmpID = 5"); }