Reputation: 627
How do I calculate Sum of two rows in DataTable
which is of type string ?
in my case I cannot change column type.
I tried these :
1)
object objSum;
objSum = dt.Compute("Sum(WeightRate)", "");
2)
decimal total = (decimal)dt.Compute("SUM( [WeightRate] )", "");`
But no luck...
My table :
Weightrate No.Ofvehicles
350.50 50
205.00 40
I need result as
Weightrate No.Ofvehicle
555.50 90
Upvotes: 4
Views: 19700
Reputation: 11
Fixed it by using the below:
var result = dt.AsEnumerable().Sum(x => Convert.ToInt32(x["WeightRate"]));
Upvotes: 1
Reputation: 204129
The Compute method allows for some rudimentary type conversion:
var sum = dt.Compute("Sum(Convert(WeightRate, 'System.Int32'))");
See the MSDN help on DataColumn Expressions for more information about what you can do with a Compute method call.
Edit Having re-read your question, you'll probably want to convert to System.Decimal rather than System.Int32, but hopefully you got that. ;-)
Upvotes: 8