C# 报表表达式帮助

C# 报表表达式帮助,c#,winforms,reporting-services,expression,C#,Winforms,Reporting Services,Expression,我在WinForms应用程序的本地报告中使用以下表达式,但当字段值为null时,我收到错误: =IIf(Fields!MyField.Value = "", "NULL", Left(Fields!MyField.Value, Len(Fields!MyField.Value) - 2)) 我这样做是为了去掉后面的逗号和值的空格。IIf工作,左边工作,Len工作。。。但当我在表达式的-2部分加上时就不是了 我假设空值或ZLSs不会成为问题,因为我在计算表达式的后半部分之前将它们取出 你知道这是

我在WinForms应用程序的本地报告中使用以下表达式,但当字段值为null时,我收到错误:

=IIf(Fields!MyField.Value = "", "NULL", Left(Fields!MyField.Value, Len(Fields!MyField.Value) - 2))
我这样做是为了去掉后面的逗号和值的空格。IIf工作,左边工作,Len工作。。。但当我在表达式的-2部分加上时就不是了

我假设空值或ZLSs不会成为问题,因为我在计算表达式的后半部分之前将它们取出


你知道这是什么原因吗?非常感谢您的帮助

在我看来,内联if只是筛选空字符串,然后将值赋给null。空值和长度为1的字符串实际上会破坏此代码

尝试使用以下方法:

=IIf(IsNull(Fields!MyField.Value), "NULL", 
(IIf (Len(Fields!MyField.Value) < 2, "SHORT", 
Left(Fields!MyField.Value, Len(Fields!MyField.Value) - 2)))
为了便于阅读,我添加了换行符。显然,你可以用任何字符串来代替SHORT。这就是伦菲尔德!MyField.Value-2从求值变为负数,我打赌这会导致您的问题