我们知道,使用datatable的计算功能,我们可以得到列的总和。 但我希望获得一行数据表的总和。 我将用一个例子来解释:
我有一个像下面这样的数据图:通过计算功能,我们可以得到每列(产品)的总和。例如对于product1,2 + 12 + 50 + 13 = 77。
我想获得company1:2 + 6 + 4 + 3 + 5 = 20
的总和http://img123.imageshack.us/img123/1517/61519307xx5.jpg
如何使用asp.net 1.1进行操作?
答案 0 :(得分:2)
来自msdn:
如果您必须执行操作 您应该创建两个或更多列 一个DataColumn,设置它的表达式 财产到适当的表达, 并使用聚合表达式 结果列。在那种情况下,给定 一个名为“total”的DataColumn, 并将Expression属性设置为 这样:
"Quantity * UnitPrice"
答案 1 :(得分:2)
LINQ救援:
DataTable dt = WhateverCreatesDataTable();
DataRow dr = dt.Rows[0];
int sum = dt.Columns.Cast<DataColumn>().Sum(dc=>(int)dr[dc]);
对于那些在石器时代仍然拖着他们指关节的人(又名pre-.Net 3.5和LINQ):
DataTable dt = WhateverCreatesDataTable();
DataRow dr = dt.Rows[0];
int sum = 0;
foreach(DataColumn dc in dt.Columns)
sum += (int)dr[dc];
答案 2 :(得分:2)
由于你想在1.1中解决这个问题,你可以做一个简单的解决方案
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.
答案 3 :(得分:0)
我们可以将Datatable的Compute()函数用于以下目的:
下面的链接详细介绍了Datatable的compute()函数:
http://codevariation.blogspot.com/2017/02/using-datatable-compute-function-in-cnet.html
希望这会对您有所帮助。
谢谢。