如何将参数值从Asp.net传递到SSRS存储过程?

时间:2016-05-16 19:12:23

标签: asp.net reporting-services

我有一个网页表单页面,其中包含用于SSRS报告的ReportViewer。除了在SSRS中的RDL文件中内置的三个参数之外,我还需要从Web表单(User.Identity.Name和报表的描述)传递两个值。如何将所有五个值发送到RDL文件使用的存储过程?

我在Page_Load中使用

在C#代码中收集用户名和报告名称
(var username = User.Identity.Name;)
(var report = "Customer Service - Get Ship Date";)

我有报告查看器,它使用RDL文件,用户将从下拉列表中选择三个参数。

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" ProcessingMode="Remote" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Height="100%" Width="100%" SizeToReportContent="True" PageCountMode="Actual" AsyncRendering="False">
        <ServerReport ReportPath="/Express/Customer Service/CSGetShipDate" ReportServerUrl="http://MMSMV-SQL1:81/ReportServer_SQL2008" />
    </rsweb:ReportViewer>

我只是不确定如何组合要发送到报表服务器的参数来执行RDL文件。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

请执行以下操作,将参数传递给SSRS存储过程。

List<ReportParameter> reportParams = new List<ReportParameter>();
reportParams.Add(new ReportParameter("SPVariable1", User.Identity.Name));
reportParams.Add(new ReportParameter("SPVariable2", Report.Description));
ReportViewer1.ServerReport.SetParameters(reportParams);

确保您使用了正确的变量名称。因为它们区分大小写。