将datetime传递给报表查看器时参数验证失败

时间:2014-08-08 19:42:29

标签: c# asp.net exception reporting-services parameters

所以我试图在asp中使用reportviewer控件查看远程ssrs报告。该报告有三个参数 - 一个nvarchar和两个日期时间。传递单个nvarchar工作正常,直到我添加了两个日期时间,此时我得到以下错误。所以一定有一些问题。我一直都会遇到可怕的错误:

    Parameter validation failed. It is not possible to provide valid values for all    parameters. (rsParameterError)

尽管传递了所有三个参数的值,但仍然如此。我猜这是日期字符串中的/字符的问题,所以我尝试编码那些url,但无济于事。我可以确认此报告确实从报告服务运行,但我似乎无法从我的代码中正确传递参数值。建议?

我的代码如下

    string firstdate = datepicker.Value;
    string enddate = datepicker2.Value;

    firstdate = HttpUtility.UrlEncode(firstdate);
     enddate = HttpUtility.UrlEncode(enddate);

    ReportParameter[] parm = new ReportParameter[3];
    parm[0] = new ReportParameter("store_name", DropDownList1.SelectedValue);
    parm[1] = new ReportParameter("mindate",firstdate);
    parm[2] = new ReportParameter("maxdate", enddate);



    ReportViewer1.ServerReport.ReportPath = "<REDACTED>";
    ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://<REDACTED>/ReportServer");
    ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerCredentials("<REDACTED>", "<REDACTED>", "");
    ReportViewer1.ProcessingMode = ProcessingMode.Remote;
    ReportViewer1.ServerReport.SetParameters(parm);
    ReportViewer1.ServerReport.Refresh();  

1 个答案:

答案 0 :(得分:0)

原来.rdl文件坏了,但我不知道怎么做。完全重新创建报告似乎解决了这个问题。