【发布时间】:2013-10-07 06:53:24
【问题描述】:
我在使用 DataTable 计算 SUM 时遇到以下错误。
Invalid usage of aggregate function Sum() and Type: String.
我正在使用以下代码:
lblQuestionnaireTotalTime.Text = CalculateMinutes(
Convert.ToInt32(
(
(DataSet)Session["DsQuestionaire"]).Tables["Questions"]
.Compute("Sum(EstimatedCompletionTime)", "")));
它总是抛出一个错误。 我试过how-to-calculate-the-sum-of-the-datatable-column-in-asp-net 和
how-can-i-get-a-sum-for-the-column-pieces-in-a-datatable 和其他一些链接,但无法解决问题。
这是我如何将列添加到数据表
dtQuestions.Columns.Add(new DataColumn("EstimatedCompletionTime", typeof(Int32)));
【问题讨论】:
-
天真的问题,但是...... EstimatedCompletionTime 的类型是什么?
-
你试过 Sum(Convert(EstimatedCompletionTime, 'System.Int32')) 吗?
-
它说Compute方法只需要1个参数
-
它说“聚合参数中的语法错误:需要一个可能带有 'Child' 限定符的列参数。”
-
SO 上的某人(抱歉现在找不到)建议使用 LINQ 来做类似的事情(它也适用于 DataTable)。给它一个机会!
标签: c# asp.net python-3.x datatable sum