2012-03-05 118 views
0

我有一个使用存储过程使用可选参数的报告。我有4个可选参数,因此在报告的预览选项卡中,我可以为参数设置4个文本框。但是,当我不在文本框中写入任何内容时,一个错误..我能做些什么来执行我的proc与空参数是SSRS?如何在SSRS中使用带有null参数的存储过程?

回答

0

可以按如下声明参数过程:

@Your_parameter VARCHAR(50) = NULL 

,并在那里为使用:

where (@Your_parameter IS NULL OR columnname = @Your_parameter) 
0

注意,“离开框为空”,可能是通过一个空字符串到存储过程,所以即使过程写入正确(如Vikram发布的代码中),您也不会看到错误,但您可能看不到预期的结果。

如果您的程序编写正确,请在SSRS设计器中访问参数属性并查看“默认值”的设置。确保默认设置为'空',而不是空白字符串。如果参数是列表,则可以拆分值和标签以允许您在用户从列表中选择“无”时传递空值。还要访问数据集属性并查看参数映射以确保报表参数正确映射到查询参数。

这是非常一般的信息,因为您没有发布您收到的错误消息。错误消息中提供的信息通常提供了可能导致问题的线索。如果您在查看Vikram提供的过程信息和上述SSRS参数信息后仍然很困难,发布错误消息将帮助人们为您提供更多相关的响应,让您再次移动。 祝你好运!

+0

我的过程与Vikram是一样的,我做了你说的但没有工作。错误是:'请为参数objectType输入一个值。参数不能为空' – 2012-03-05 15:44:49

+0

正如Lee Ticket笔记(以及我的回复的第二段中所述),这似乎表明问题在于事实上报告参数尚未设置为允许空值。请注意,我不是在谈论过程参数,而是在报告参数。 – Rose 2012-03-11 20:48:56

0

这听起来像你已经创建了参数,但实际上并没有将它们传递给存储过程。检查它们是否通过查看数据标签(见截图):

enter image description here

这听起来像你已经有了,但仔细检查,允许空格没有被选中,但允许空值下的参数选项被选中。

相关问题