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)
当我使用这种方法时,我收到一个错误
聚合参数中的语法错误:期望具有可能的"子"限定符的单个列参数.
请帮我...
我相信方法#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一个空字符串 - 这是行不通的!