Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssrs 2008 如何调试SSRS错误-“;输入字符串的格式不正确";_Ssrs 2008_Reporting Services - Fatal编程技术网

Ssrs 2008 如何调试SSRS错误-“;输入字符串的格式不正确";

Ssrs 2008 如何调试SSRS错误-“;输入字符串的格式不正确";,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,我知道我一直在问,我在学习daly 令人不快的表达是: =IIf(Parameters!ResponseRange.Value = 3, Nothing, IIf(Parameters!ResponseRange.Value is Nothing, Nothing, Parameters!ResponseRange.Value)) 这是规范,因为这部分-参数!ResponseRange.值为Nothing,Nothing, 至于参数,下面是它们的外观截图-参数是“文

我知道我一直在问,我在学习daly

令人不快的表达是:

=IIf(Parameters!ResponseRange.Value = 3, Nothing, 
    IIf(Parameters!ResponseRange.Value is Nothing, Nothing,
        Parameters!ResponseRange.Value))
这是规范,因为这部分-
参数!ResponseRange.值为Nothing,Nothing,

至于参数,下面是它们的外观截图-参数是“文本”数据类型:

该表达式中的
IIf()
检查顺序是奇数;通常,您希望首先处理“成功”或非空的情况。此外,您还可以将这两个检查合并为一个
IIf()

=IIf(不是空(参数!ResponseRange.Value)和ALSO
参数!ResponseRange.Value 3,参数!ResponseRange.Value,无)
注意,我用
IsNothing()
函数替换了
Is Nothing
表达式。除此之外,表达式本身是有效的。
ResponseRange
参数的数据类型是什么?通过与
3
的比较,我推断它是一个
整数。您是否已将其标记为可以为空?像
Integer
这样的基本数据类型不能设置为
Nothing
,就像您正在尝试的那样,如果您没有将它们设置为null


您可能需要将默认值设置为
0
-1
,而不是
Nothing
,然后在查询中进行处理。

我可能会因此遇到麻烦,但不要担心要求太多。至少你在问这个问题。社区会让您知道任何问题。;)如果3是文本值,请确保将参数与
“3”
(带引号)进行比较,而不是与
3
进行比较。这样就可以了!我现在离得很近了!出于某种原因,我在将空值作为指定的“可用参数”或“默认参数”传递时遇到了问题。。然而,如果我在SSMS中手动运行我的存储过程,像这样
exec[dbo].[prc\u RPT\u responder\u Answer]'20121010','20121011',18964,null,null,null
-它可以工作。。。不知道会发生什么好的,我的问题可能与我的存储过程有关,它需要一个像“10,11,12,13,14…120”这样的大字符串并将其拆分。因为我在将null转换为int时出错。。(在SSMS中,-
将nvarchar值“null”转换为数据类型int时转换失败。
-除了该值实际上是一个varchar,甚至不是null。无论如何,我想你可以执行:)如果SQL数据类型不明确,请使用标量函数(而不是存储过程)嵌入CASE-WHEN-ELSE结构可以让生活更轻松。
=IIf(Not IsNothing(Parameters!ResponseRange.Value) AndAlso 
    Parameters!ResponseRange.Value <> 3, Parameters!ResponseRange.Value, Nothing)