最近為.NET項目編碼,為了少寫代碼,直接用DataSet,DataTable等現成微軟封裝好的組件,對于Sum()、Count()等計算,DataTable提供了配套的方法Founction Compute():
DataTable.Compute 方法
2007-03-22 17:53
.
DataTable.Compute 方法
計算用來傳遞篩選條件的當前行上的給定表達式。
命名空間:System.Data
程序集:System.Data(在 system.data.dll 中)
Public Function Compute ( _
expression As String, _
filter As String _
) As Object
Dim instance As DataTable
Dim expression As String
Dim filter As String
Dim returnValue As Object
returnValue = instance.Compute(expression, filter)
public Object Compute (
string expression,
string filter
)
public:
Object^ Compute (
String^ expression,
String^ filter
)
public Object Compute (
String expression,
String filter
)
public function Compute (
expression : String,
filter : String
) : Object
參數
- expression
-
要計算的表達式。
- filter
-
要限制在表達式中進行計算的行的篩選器。
返回值
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");
|