Using Aggregate functions in DataView filters

11,429

Set the datacolumn to a numeric type (int, decimal, whatever):

DataColumn col = new DataColumn("Profit", typeof(int));
dsTemp.Columns.Add(col);

Use Compute:

int total = dsTemp.Compute("Sum(Profit)", "");

Note that aggregation is not a type of filter, which is the main problem with the approach you are tyring.

Share:
11,429
Shrewdroid
Author by

Shrewdroid

me means cool

Updated on June 04, 2022

Comments

  • Shrewdroid
    Shrewdroid almost 2 years

    i have a DataTable that has a column ("Profit"). What i want is to get the Sum of all the values in this table. I tried to do this in the following manner...

    DataTable dsTemp = new DataTable();
    
    dsTemp.Columns.Add("Profit");
    
    DataRow dr = null;
    
    dr = dsTemp.NewRow();
    dr["Profit"] = 100;
    dsTemp.Rows.Add(dr);
    
    dr = dsTemp.NewRow();
    dr["Profit"] = 200;
    dsTemp.Rows.Add(dr);
    
    DataView dvTotal = dsTemp.DefaultView;
    dvTotal.RowFilter = " SUM ( Profit ) ";
    
    DataTable dt = dvTotal.ToTable();
    

    But i get an error while applying the filter... how can i get the Sum of the Profit column in a variable

    thank you...