C# 在C中使用DATATABLE计算总和时,聚合函数Sum()和Type:String的用法无效#
在使用DataTable计算总和时,我得到以下错误C# 在C中使用DATATABLE计算总和时,聚合函数Sum()和Type:String的用法无效#,c#,asp.net,python-3.x,datatable,sum,C#,Asp.net,Python 3.x,Datatable,Sum,在使用DataTable计算总和时,我得到以下错误 Invalid usage of aggregate function Sum() and Type: String. 我正在使用以下代码: lblQuestionnaireTotalTime.Text = CalculateMinutes( Convert.ToInt32( ( (DataSet)Session["DsQuestionaire"]
Invalid usage of aggregate function Sum() and Type: String.
我正在使用以下代码:
lblQuestionnaireTotalTime.Text = CalculateMinutes(
Convert.ToInt32(
(
(DataSet)Session["DsQuestionaire"]).Tables["Questions"]
.Compute("Sum(EstimatedCompletionTime)", "")));
它总是抛出一个错误。
我已经试过了
和其他一些链接,但无法解决问题
下面是我如何向datatable添加列
dtQuestions.Columns.Add(new DataColumn("EstimatedCompletionTime", typeof(Int32)));
不能计算字符串类型的列的
和。您需要确保列的类型为integer
尝试更改列数据类型
t.Columns["Price"].DataType=typeof(int);
转换字符串列
object sumObject = dtTable.Compute("Sum(Convert(" + col_Name + ", 'System.Int32')","");
天真的问题,但是…EstimatedCompletionTime的类型是什么?您尝试过Sum(Convert(EstimatedCompletionTime,'System.Int32'))吗?它说计算方法只需要1个参数,它说“聚合参数中的语法错误:需要一个可能带有'Child'限定符的单列参数。”这里有人这样说(很抱歉,现在找不到它)建议使用LINQ实现类似的功能(它也适用于DataTable)。给它一个机会!您确定(数据集)会话[“DsQuestionaire”])。表[“Questions”]
的列类型完全相同吗?你们能得到它的类型并检查一下吗?实际上会话在注销时并没有被破坏,实际上我正在将一个1.1版本的网站转换成4.0版本,他们只是在单击注销时重定向到登录页面。这是主要问题。