Reporting services 参数缺少值ssrs 2008

Reporting services 参数缺少值ssrs 2008,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我有一个整数数据类型的参数,它是隐藏的。当我运行报告时,报告给我一个错误 参数X缺少一个值 但是,如果我使参数可见,它就会工作。我尝试提供默认值0,但这不足以满足我的要求,因为我的子报表(Drill dowm)依赖于此参数。请帮忙。谢谢 确保没有为参数指定可用值。内部和隐藏参数的可用值应为“无”。假设您与我有相同的问题,尝试使用ReportViewer组件在网页上运行报表,我通过在呈现报表之前添加一个null参数来解决该问题: C#代码: var parameters = new List<

我有一个整数数据类型的参数,它是隐藏的。当我运行报告时,报告给我一个错误

参数X缺少一个值


但是,如果我使参数可见,它就会工作。我尝试提供默认值0,但这不足以满足我的要求,因为我的子报表(Drill dowm)依赖于此参数。请帮忙。谢谢

确保没有为参数指定可用值。内部和隐藏参数的可用值应为“无”。

假设您与我有相同的问题,尝试使用ReportViewer组件在网页上运行报表,我通过在呈现报表之前添加一个
null
参数来解决该问题:

C#代码:

var parameters = new List<ReportParameter>();
parameters.Add(new ReportParameter("ParameterName", (string)null));
ReportViewer1.ServerReport.SetParameters(parameters);
var参数=新列表();
Add(newreportParameter(“ParameterName”,(string)null));
ReportViewer1.ServerReport.SetParameters(参数);
希望这会有所帮助

我必须做一个“如果存在”的陈述,才能让这一切消失。它对我有效,因为它使它始终返回一个值,即使我的查询不需要该值

    if exists (my select query)
    my select query
    else 
    select '2' 
    // '2' would never be used, but it made ssrs stop giving me
    // the stupid error and execute the rest of the query

我想补充一下dmbreth的正确答案

我忽略了一个概念,即参数的值仍然需要绑定到某个对象。最初,我使用参数属性的可用值部分绑定数据集的输出,但根据dmbreth的回答,情况并非如此。最后,我将我的输出相关性设置从可用值部分移动到默认值部分,这就成功了

总之,在参数属性对话框中:

常规页面-允许选中多个值(此选项特定于我的应用程序),参数可见性设置为内部

可用值页-无

默认值页面-从查询中获取值,[适当的数据集,此处的值]

高级页面-此处无意义


希望这一点足够清楚,可以让其他有同样问题的人受益……

只需添加1个默认值即可绕过此错误(即使该默认值永远不会被使用)

-在该特定参数的“报告参数属性”下,转到默认值页面

-切换“指定值”

-添加一个值(我加了一句:“只需添加一个填充物,就可以得到一个隐藏的值,错误”,所以当我稍后回顾时,我记得我为什么要做这样的事情)


-单击“确定”

如果从查询中指定可用值,则默认值必须在可用值列表中。默认值(可用)=true。

首先

转到“报告参数属性”,检查该参数的-可用值

不能为其指定任何值。因此,我们应该将其设置为None

第二个解决办法是

只需在报告参数属性的默认值中的指定值处添加一个空格即可


这肯定会奏效。希望这能节省你的时间

如果数据集查询中有一个参数依赖于另一个参数,而该参数没有“默认值”,并且不允许空值,那么问题也会出现

例如:

参数1有一个默认值:数据集“EmployeeSearch”中的NameEmployee


但是数据集“EmployeeSearch”在名为@Month的查询中有一个过滤器或参数,用于指示月份数。因此,如果@Month的值为null,SSRS会说“参数缺少一个值”。

我有一个类似的问题,SSRS设置的默认值为
(null)
,但是我的报告不需要该参数;我发现过滤列表对测试很有用,所以我保留了它,我想我可以在数据集配置的SSRS中删除它。但是我将它改为
=System.DBNull.Value
(我想这可能是任何表达式),这对我来说都是有效的,因此如果我以后决定取消隐藏,我仍然可以在需要时传入一个值,并设置可用值(必须确保将NULL值添加到我的数据集中)。

这里还有一个可能性。我遇到过这样的情况:报表设计器可以工作,但服务器报表对象不能工作。解决方案是删除服务器对象,然后从设计器中重新保存它。

Hmm?如果您有一个既隐藏又必需的参数,则必须通过其他方式提供一个值。如果您正在这样做,请扩展您的答案,并告诉我们您是如何做到这一点的。如果没有这些信息,我们将无法进一步帮助您…如果必须从数据库中检索默认值(使用数据集),该怎么办?将可用值设置为“无”无效。