C# 无法解释令牌'';位置5
我有一个名为'Jul'的列,其中包含一些值,如'123'和'-'。我试图通过添加值并忽略“-”来获得列的和。我试过:C# 无法解释令牌'';位置5,c#,C#,我有一个名为'Jul'的列,其中包含一些值,如'123'和'-'。我试图通过添加值并忽略“-”来获得列的和。我试过: object julysum; julysum = Convert.ToDouble(FormattedPurchaseSummaryTable.Compute("SUM(Jul)", "Jul != '-'")); 但我得到了一个错误:无法解释令牌“!”在第5位。 如何解决此错误?没有=操作员 您可能需要 有关可用运算符的更多信息,请阅读此处:已经向您介绍了表达式语言。解决了
object julysum;
julysum = Convert.ToDouble(FormattedPurchaseSummaryTable.Compute("SUM(Jul)", "Jul != '-'"));
但我得到了一个错误:无法解释令牌“!”在第5位。
如何解决此错误?没有
=代码>操作员
您可能需要
有关可用运算符的更多信息,请阅读此处:已经向您介绍了表达式语言。解决了第一个问题后,我们需要解决第二个问题,即Jul
是字符串,而不是整数(或浮点等)。所以我们也需要转换它
但是,我认为它不支持在总和
中使用复杂的表达式来进行转换
因此,我认为您需要做的是添加一个新的DataColumn
,其表达式如下:
IIF(Jul != '-',CONVERT(Jul,'System.Int32'),0)
然后在这个新列上计算您的SUM
。尝试julysum=Convert.ToDouble(FormattedPurchaseSummaryTable.compute(“SUM(Jul)”,“Jul'-”)代码>。=
是C#不等式运算符,您需要使用
。嗨@TetsuyaYamamoto,
是什么意思?我替换了=代码>使用
但现在我得到:聚合函数Sum()的用法无效,并键入:String。
嗨@Blam,我替换了=代码>与
一起使用,现在我发现:聚合函数Sum()和Type:String的用法无效。
的确如此!这里有这样一句话:聚合只能应用于单个列,不能在聚合中使用其他表达式。因此,需要一个新列才能在aggregate@Damien_The_Unbeliever,是否需要添加另一个数据列
?还有其他方法吗?@AdityaPradhan-我提供了一个链接,Rob提供了另一个链接,都说在聚合函数中只允许使用普通列名。当然,你可以从一开始就强制Jul
成为int
,但是,你只需要在填充表时处理-
s,因为int
不能包含非数字的内容。@Damien\u不信者我明白了你的意思,并尝试添加另一个临时列,但我再次遇到同样的错误。