2013-01-03 16 views
2

我知道我已经提出了很多问题,我在学习daly!如何调试一个SSRS错误 - “输入字符串的格式不正确”

enter image description here

有问题的表达式为:

=IIf(Parameters!ResponseRange.Value = 3, Nothing, 
    IIf(Parameters!ResponseRange.Value is Nothing, Nothing, 
     Parameters!ResponseRange.Value)) 

它的规格。因为这部分 - Parameters!ResponseRange.Value is Nothing, Nothing,

至于参数,下面是他们如何看截图 - 参数是一个“文本”数据类型:

enter image description here

+2

我可能会为此烦恼,但不要担心要求太多。至少你问这个问题。社区会让你知道任何问题。 ;) – glh

回答

5

,该IIf()检查的顺序表情很奇怪;一般你首先要处理“成功”或非空案例。另外,还可以将两个检查合并到一个IIf()

=IIf(Not IsNothing(Parameters!ResponseRange.Value) AndAlso 
    Parameters!ResponseRange.Value <> 3, Parameters!ResponseRange.Value, Nothing) 

注意,我取代IsNothing()功能的Is Nothing表达。除此之外,表达式本身是有效的。 ResponseRange参数的数据类型是什么?我推断这是一个Integer通过比较3。你有没有标明它可以为空?像Integer这样的原始数据类型不能设置为Nothing,就像您尝试的那样,如果您没有设置它们可以为空。

您可能需要设置默认值0-1而不是Nothing,然后在您的查询中处理该问题。

+0

嗨科里 - 所以这里的数字3实际上是一个文本值.. – Coffee

+0

并非常感谢!我将添加参数的屏幕截图。 – Coffee

+1

如果3是文本值,请确保将参数与“3”(带引号)进行比较,而不是“3”。 –