Reputation: 3241
As we know that, with compute function of datatable we can get sum of columns. But I want to get sum of a row of datatable. I will explain with a example:
I have a datatable like image below: With compute function we can get the sum of each column (product). Such as for product1, 2 + 12 + 50 + 13= 77.
I want to get sum of company1 : 2 + 6 + 4 + 3 + 5 = 20
http://img123.imageshack.us/img123/1517/61519307xx5.jpg
How can I do it with asp.net 1.1?
Upvotes: 4
Views: 6377
Reputation: 127
We can use Datatable's Compute() function for the following purpose:
Below links have detailed explaination of Datatable's compute() function:
http://codevariation.blogspot.com/2017/02/using-datatable-compute-function-in-cnet.html
Hope this will help you.
Thanks.
Upvotes: 0
Reputation: 16196
Since you want to solve this in 1.1 here is what you can do as a simple solution
DataColumn totalColumn = new DataColumn();
totalColumn.DataType = System.Type.GetType("System.Int32");
totalColumn.ColumnName = "Total";
totalColumn.Expression = "Product1 + Product2 + Product3 + Product4 + Product5";
// Populate and get the DataTable dt then add this computed column to this table
dt.Columns.Add(totalColumn);
//Now if you access the column "Total" of the table you will get the desired result.
Upvotes: 2
Reputation: 17260
LINQ to the rescue:
DataTable dt = WhateverCreatesDataTable();
DataRow dr = dt.Rows[0];
int sum = dt.Columns.Cast<DataColumn>().Sum(dc=>(int)dr[dc]);
For those still dragging their knuckles in the stone ages (aka pre-.Net 3.5 and LINQ):
DataTable dt = WhateverCreatesDataTable();
DataRow dr = dt.Rows[0];
int sum = 0;
foreach(DataColumn dc in dt.Columns)
sum += (int)dr[dc];
Upvotes: 2
Reputation: 42227
From msdn:
If you must perform an operation on two or more columns, you should create a DataColumn, set its Expression property to an appropriate expression, and use an aggregate expression on the resulting column. In that case, given a DataColumn with the name "total", and the Expression property set to this:
"Quantity * UnitPrice"
Upvotes: 2