最近為.NET項目編碼,為了少寫代碼,直接用DataSet,DataTable等現成微軟封裝好的組件,對于Sum()、Count()等計算,DataTable提供了配套的方法Founction Compute():
DataTable.Compute 方法
DataTable.Compute 方法
2007-03-22 17:53
.
DataTable.Compute 方法
計算用來傳遞篩選條件的當前行上的給定表達式。 命名空間:System.Data Visual Basic(聲明)
Public Function Compute ( _ expression As String, _ filter As String _ ) As Object Visual Basic(用法)
Dim instance As DataTable Dim expression As String Dim filter As String Dim returnValue As Object returnValue = instance.Compute(expression, filter) C#
public Object Compute ( string expression, string filter ) C++
public:
Object^ Compute (
String^ expression,
String^ filter
)
J#
public Object Compute (
String expression,
String filter
)
JScript
public function Compute ( expression : String, filter : String ) : Object
參數
返回值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 有關為這兩個參數創建表達式的規則,請參見 DataColumn.Expression 屬性。 下面的示例針對識別號碼為五的銷售人員,對名為“Total”(合計)的列的值求和。 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 C#
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"); |