次の方法で共有


DataTable.Compute メソッド

フィルタ基準を満たしている現在の行で指定した式を計算します。

Public Function Compute( _
   ByVal expression As String, _   ByVal filter As String _) As Object
[C#]
public object Compute(stringexpression,stringfilter);
[C++]
public: Object* Compute(String* expression,String* filter);
[JScript]
public function Compute(
   expression : String,filter : String) : Object;

パラメータ

  • expression
    計算する式。
  • filter
    式で評価される行を制限するフィルタ。

戻り値

計算の結果に設定された Object

解説

expression パラメータには集約関数が必要です。たとえば、次の式は有効です。

Count(Quantity)

次の式は無効です。

Sum (Quantity * UnitPrice)

2 つ以上の列で操作を実行する必要がある場合は、 DataColumn を作成し、この列の Expression プロパティを適切な式に設定し、結果の列で集約式を使用します。この場合は、 DataColumn が "total" という名前で、 Expression プロパティが次のように設定されているとします。

"Quantity * UnitPrice"

Compute メソッドの式の引数は次のようになります。

Sum(total)

2 番目のパラメータ filter は、式で使用する行を指定します。たとえば、テーブルに "colDate" という名前の日付列がある場合は、次の式で行を制限できます。

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

両方のパラメータの式を作成するときの規則については、 DataColumn クラスの Expression プロパティのトピックを参照してください。

使用例

[Visual Basic, C#, C++] 識別番号 5 が割り当てられた営業担当者の、"Total" という名前の列の値を合計する例を次に示します。

 
Private Sub ComputeBySalesSalesID(ByVal myDataSet As DataSet)
    ' Presumes a DataTable named "Orders" that has a column named "Total."
    Dim myTable As DataTable
    myTable = myDataSet.Tables("Orders")
    ' Declare an object variable.
    Dim objSum As Object
    objSum = myTable.Compute("Sum(Total)", "EmpID = 5")
 End Sub

[C#] 
private void ComputeBySalesSalesID(DataSet myDataSet){
    // Presumes a DataTable named "Orders" that has a column named "Total."
    DataTable myTable;
    myTable = myDataSet.Tables["Orders"];
    // Declare an object variable.
    object objSum;
    objSum = myTable.Compute("Sum(Total)", "EmpID = 5");
 }

[C++] 
private:
void ComputeBySalesSalesID(DataSet* myDataSet){
    // Presumes a DataTable named "Orders" that has a column named "Total."
    DataTable* myTable;
    myTable = myDataSet->Tables->Item[S"Orders"];
    // Declare an object variable.
    Object* objSum;
    objSum = myTable->Compute(S"Sum(Total)", S"EmpID = 5");
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

DataTable クラス | DataTable メンバ | System.Data 名前空間 | Expression