在datatable中获取列的SUM()时出错

Job*_*ian 0 c# asp.net

DataTable dtStock = new DataTable();
DataColumn dcTotalCases = new DataColumn("TotalCases");
dcTotalCases.DataType = System.Type.GetType("System.Int32");
dcTotalCases.ReadOnly = false;
dtStock.Columns.Add(dcTotalCases);
Run Code Online (Sandbox Code Playgroud)

方法1

int sum = Convert.ToInt32(dtStock.Compute("Sum([TotalCases]) ", "[TotalCases] <> ''"));
Run Code Online (Sandbox Code Playgroud)

当我使用这种方法时,我收到一个错误

聚合函数Sum()和Type:String的使用无效.

方法2

int sum = Convert.ToInt32(dtStock.Compute("SUM(Convert([TotalCases], 'System.Int32'))", "");
Run Code Online (Sandbox Code Playgroud)

当我使用这种方法时,我收到一个错误

聚合参数中的语法错误:期望具有可能的"子"限定符的单个列参数.

请帮我...

mar*_*c_s 6

我相信方法#1应该工作 - 只是不要将你的INT列与空字符串进行比较 !!

所以使用这样的东西:

int sum = Convert.ToInt32(dtStock.Compute("Sum(TotalCases)", "[TotalCases] > 0"));
Run Code Online (Sandbox Code Playgroud)

要么

int sum = Convert.ToInt32(dtStock.Compute("Sum(TotalCases)", "[TotalCases] IS NOT NULL"));
Run Code Online (Sandbox Code Playgroud)

或者你需要什么 - 只是不要使用,[TotalCases] <> ''因为它比较INT一个空字符串 - 这是行不通的!