如何调试SSRS错误 - "输入字符串未处于正确格式"

Cof*_*fee 2 reporting-services ssrs-2008

我知道我很想问,我正在学习daly!

在此输入图像描述

违规表达是:

=IIf(Parameters!ResponseRange.Value = 3, Nothing, 
    IIf(Parameters!ResponseRange.Value is Nothing, Nothing,
        Parameters!ResponseRange.Value))
Run Code Online (Sandbox Code Playgroud)

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

至于参数,这里是它们看起来的截图 - 参数是"文本"数据类型:

在此输入图像描述

Cᴏʀ*_*ᴏʀʏ 6

IIf()表达式中的检查顺序是奇数; 通常,您希望首先处理"成功"或非空案例.此外,您可以将两个检查合并为一个IIf():

=IIf(Not IsNothing(Parameters!ResponseRange.Value) AndAlso 
    Parameters!ResponseRange.Value <> 3, Parameters!ResponseRange.Value, Nothing)
Run Code Online (Sandbox Code Playgroud)

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

您可能需要设置默认值0-1代替Nothing并在查询中随后处理该值.