2013-10-01 383 views
0

我在計算帶有DataTable的SUM時出現以下錯誤。使用C#中的DATATABLE計算SUM時聚合函數Sum()和Type:String的用法無效

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))); 
+0

天真的問題,但...什麼是EstimatedCompletionTime類型? –

+0

@Adriano Int32 ... –

+0

你用Sum(轉換(EstimatedCompletionTime,'System.Int32'))嗎? –

回答

0

不能計算與字符串類型的列Sum。你需要確保你的列有整型。

enter image description here

+0

它是關閉int類型我已更新的問題,請查看 –

+0

你確定'(DataSet)Session [「DsQuestionaire」])。Tables [「Questions」]'具有完全相同的列類型?你可以得到它的類型和檢查? – Sadique

+0

是的....我確定 –

0

嘗試改變列數據類型

0

將字符串列。

object sumObject = dtTable.Compute("Sum(Convert(" + col_Name + ", 'System.Int32')","");