在数据表中获取列的SUM()时出错 [英] Error while taking SUM() of column in datatable

查看:101
本文介绍了在数据表中获取列的SUM()时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

方法1

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

使用此方法时,出现错误

When I use this method, I get an error

聚合函数Sum()和类型:String的用法无效.

Invalid usage of aggregate function Sum() and Type: String.

方法2

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

使用此方法时,出现错误

When I use this method, I get an error

聚合参数中的语法错误:期望使用单列参数可能带有儿童"预选赛.

Syntax error in aggregate argument: Expecting a single column argument with possible 'Child' qualifier.

请帮助我...

推荐答案

我认为方法#1应该有效-只是不要比较您的 INT 列为空字符串!!

I believe method #1 should work - just don't compare your INT column to an empty string!!

因此,请使用以下内容:

So use something like this:

int sum = Convert.ToInt32(dtStock.Compute("Sum(TotalCases)", "[TotalCases] > 0"));

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

或您需要的任何内容-只是不要使用 [TotalCases]<>'',因为它会将 INT 与一个空字符串进行比较-但这是行不通的!

or whatever you need - just don't use [TotalCases] <> '' since that compares an INT to an empty string - and that's not going to work!

这篇关于在数据表中获取列的SUM()时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆