4

众所周知,通过数据表的计算功能,我们可以得到列的总和。但我想得到一行数据表的总和。我将用一个例子来解释:

我有一个如下图所示的数据表:使用计算功能,我们可以获得每列(产品)的总和。比如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 做到这一点?

4

4 回答 4

2

来自msdn

如果必须对两个或更多列执行操作,则应创建一个 DataColumn,将其 Expression 属性设置为适当的表达式,并在结果列上使用聚合表达式。在这种情况下,给定一个名为“total”的 DataColumn,并将 Expression 属性设置为:

"Quantity * UnitPrice"

于 2008-12-05T15:40:16.797 回答
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];
于 2008-12-05T15:52:59.657 回答
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.
于 2009-01-07T17:18:21.093 回答
0

我们可以将 Datatable 的 Compute() 函数用于以下目的:

  • 求和。
  • 找到最大值。
  • 找到最小值。
  • 计算平均值。

以下链接详细解释了 Datatable 的 compute() 函数:

http://codevariation.blogspot.com/2017/02/using-datatable-compute-function-in-cnet.html

希望这会帮助你。

谢谢。

于 2019-01-02T08:20:16.890 回答