DataTable.Compute(String, String) Yöntem

Tanım

Geçerli satırlarda, filtre ölçütünü geçiren belirtilen ifadeyi hesaplar.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);
public object Compute (string expression, string filter);
member this.Compute : string * string -> obj
Public Function Compute (expression As String, filter As String) As Object

Parametreler

expression
String

Hesaplama ifadesi.The expression to compute.

filter
String

İfadede değerlendiren satırları sınırlamak için filtre.The filter to limit the rows that evaluate in the expression.

Döndürülenler

Object

Bir Object , hesaplamanın sonucuna ayarlanır.An Object, set to the result of the computation. İfade null olarak değerlendirilirse, dönüş değeri olur Value .If the expression evaluates to null, the return value will be Value.

Örnekler

Aşağıdaki örnek, kimlik numarası beş olan satışçı için "Total" adlı bir sütunun değerlerini toplar.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

Açıklamalar

expressionParametresi bir toplama işlevi gerektiriyor.The expression parameter requires an aggregate function. Örneğin, aşağıdakiler geçerli bir ifadedir:For example, the following is a legal expression:

Count(Quantity)

Ancak bu ifade şu değildir:But this expression is not:

Sum (Quantity * UnitPrice)

İki veya daha fazla sütunda bir işlem gerçekleştirmeniz gerekiyorsa, oluşturmanız DataColumn , Expression özelliğini uygun bir ifade olarak ayarlamanız ve sonuç sütununda bir toplama ifadesi kullanmanız gerekir.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. Bu durumda, DataColumn "Total" adıyla bir, ve Expression özelliği ise olarak ayarlanır:In that case, given a DataColumn with the name "total", and the Expression property set to this:

"Quantity * UnitPrice"

Yöntemin ifade bağımsız değişkeni Compute şöyle olacaktır:The expression argument for the Compute method would then be this:

Sum(total)

İkinci parametresi, filter ifadesinde hangi satırların kullanıldığını belirler.The second parameter, filter, determines which rows are used in the expression. Örneğin, tablo "colDate" adlı bir tarih sütunu içeriyorsa, satırları aşağıdaki ifadeyle sınırlayabilirsiniz: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

Her iki parametre için ifadeler oluşturma kuralları için, özelliğine bakın DataColumn.Expression .For rules on creating expressions for both parameters, see the DataColumn.Expression property.

Şunlara uygulanır

Ayrıca bkz.