DataTable.Compute(String, String) Metoda

Definicja

Oblicza określone wyrażenie dla bieżących wierszy, które przeszły kryteria filtrowania.Computes the given expression on the current rows that pass the filter criteria.

public:
 System::Object ^ Compute(System::String ^ expression, System::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

Parametry

expression
String

Wyrażenie, które ma zostać obliczone.The expression to compute.

filter
String

Filtr, aby ograniczyć liczbę wierszy, które są obliczane w wyrażeniu.The filter to limit the rows that evaluate in the expression.

Zwraca

Objectustawia wynik obliczeń.An Object, set to the result of the computation. Jeśli wyrażenie zwróci wartość null, wartość zwracana zostanie Value.If the expression evaluates to null, the return value will be Value.

Przykłady

Poniższy przykład sumuje wartości kolumny o nazwie "Total" dla sprzedawcy, którego numer identyfikacyjny jest pięć.The following example sums the values of a column named "Total", for the salesperson whose identification number is five.

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

Uwagi

Parametr expression wymaga funkcji agregującej.The expression parameter requires an aggregate function. Na przykład poniżej znajduje się wyrażenie prawne:For example, the following is a legal expression:

Count(Quantity)

Ale to wyrażenie nie jest:But this expression is not:

Sum (Quantity * UnitPrice)

Jeśli konieczne jest wykonanie operacji na co najmniej dwóch kolumnach, należy utworzyć DataColumn, ustawić dla właściwości Expression odpowiednie wyrażenie i użyć wyrażenia agregującego w kolumnie wyników.If you must perform an operation on two or more columns, you should create a DataColumn, set its Expression property to an appropriate expression, and use an aggregate expression on the resulting column. W takim przypadku DataColumn z nazwą "Total" i właściwością Expression ustawioną na:In that case, given a DataColumn with the name "total", and the Expression property set to this:

"Quantity * UnitPrice"

Argument Expression dla metody Compute będzie następujący:The expression argument for the Compute method would then be this:

Sum(total)

Drugi parametr, filter, określa, które wiersze są używane w wyrażeniu.The second parameter, filter, determines which rows are used in the expression. Na przykład jeśli tabela zawiera kolumnę daty o nazwie "colDate", można ograniczyć wiersze z następującym wyrażeniem:For example, if the table contains a date column named "colDate", you could limit the rows with the following expression:

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

Aby uzyskać reguły tworzenia wyrażeń dla obu parametrów, zobacz Właściwość DataColumn.Expression.For rules on creating expressions for both parameters, see the DataColumn.Expression property.

Dotyczy

Zobacz też