DataTable.Compute(String, String) 方法

定义

计算用来传递筛选条件的当前行上的给定表达式。

public:
 System::Object ^ Compute(System::String ^ expression, System::String ^ filter);
public object Compute (string? expression, string? filter);
public object Compute (string expression, string filter);
member this.Compute : string * string -> obj
Public Function Compute (expression As String, filter As String) As Object

参数

expression
String

要计算的表达式。

filter
String

用于限制表达式中计算的行的筛选器。

返回

Object 设置为计算结果。 如果该表达式计算结果为 null,则返回值为 Value

示例

以下示例对标识号为 5 的销售人员的名为“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");
}
Private Sub ComputeBySalesSalesID(ByVal dataSet As DataSet)
    ' Presumes a DataTable named "Orders" that has a column named "Total."
    Dim table As DataTable
    table = dataSet.Tables("Orders")

    ' Declare an object variable.
    Dim sumObject As Object
    sumObject = table.Compute("Sum(Total)", "EmpID = 5")
 End Sub

注解

参数 expression 需要聚合函数。 例如,下面是一个法定表达式:

Count(Quantity)

但此表达式不是:

Sum (Quantity * UnitPrice)

如果必须对两个或更多列执行操作,则应创建 , DataColumn将其 Expression 属性设置为适当的表达式,并在生成的列上使用聚合表达式。 在这种情况下,给定 DataColumn 名为“total”的 ,并将 Expression 属性设置为:

"Quantity * UnitPrice"

然后,该方法的 Compute 表达式参数为:

Sum(total)

第二个 filter参数 确定表达式中使用的行。 例如,如果表包含名为“colDate”的日期列,则可以使用以下表达式限制行:

colDate > 1/1/99 AND colDate < 17/1/99

有关为这两个参数创建表达式的规则,请参阅 DataColumn.Expression 属性。

适用于

另请参阅