I am trying to implement:
dtGroupedBy.Compute(\"sum(POWER)\",dvv.RowFilter);
It results of an error:
Invalid usage
You can't use the Sum()
aggregate function on a string field.
There are 2 things you can do
System.Int32
conversion on the data you're passing to the aggregate function.
so you could do the followingdtGroupedBy.Compute("sum(CONVERT(" + POWER + ",'System.Int32'))",dvv.RowFilter);
It will depend on how you've created the DataTable
. If it's just straight from SQL, you should look into changing the SQL itself so that the POWER column is converted as you fetch it.
However, if the value should always be numeric in the first place, I would strongly suggest that you revisit your database schema - it would be cleaner to change the column type if you possible can.
Compute method supports expressions and they support the CONVERT function
that you could use inside of the expression.
For example, you could calculate sum of the column like
MyDataTable.Compute("Sum(Convert(your column name, 'Data Type'))")