Computes the given expression on the current rows that pass the filter criteria.
[Visual Basic] Public Function Compute( _ ByVal expression As String, _ ByVal filter As String _ ) As Object [C#] public object Compute( string expression, string filter ); [C++] public: Object* Compute( String* expression, String* filter ); [JScript] public function Compute( expression : String, filter : String ) : Object;
An Object, set to the result of the computation.
The expression parameter requires an aggregate function. For example, the following is a legal expression:
Count(Quantity)
But this expression is not:
Sum (Quantity * UnitPrice)
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. In that case, given a DataColumn with the name "total," and the Expression property set to:
"Quantity * UnitPrice"
The expression argument for the Compute method would then be:
Sum(total)
The second parameter filter determines which rows are used in the expression. 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
For rules on creating expressions for both parameters, see the Expression property of the DataColumn class.
The following example sums the values of a column named "Total," for the saleperson whose identification number is 5.
[Visual Basic]
Private Sub ComputeBySalesSalesID() ' Presumes a DataTable named "Orders" that has a column named "Total" Dim t As DataTable t = DataSet1.Tables("Orders") ' Declare an object variable. Dim objSum As Object objSum = t.Compute("Sum(Total)", "EmpID = 5") End Sub