首页 > 解决方案 > 报表定义可能是使用更高版本的 Reporting Services 创建的,或者包含格式不正确或无效的内容

问题描述

我正在尝试在 asp.net 项目中设计一个 rdlc 报告查看器,如果未设置任何参数,则该报告可以工作,但是当我设置参数时,会显示以下错误:

此报表的定义无效或不受此版本的 Reporting Services 支持。报表定义可能是使用更高版本的 Reporting Services 创建的,或者包含基于 Reporting Services 架构格式不正确或无效的内容。详细信息:报表定义具有无法升级的无效目标命名空间“http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition”。

似乎错误在rdlc文件版本中,有谁知道如何解决这个问题?

这是报告查看器页面的代码:

    if (!Page.IsPostBack)
    {
        var app = (Pcr.Models.Appointment)Session["app"];

        ReportParameter[] parameters = new ReportParameter[1];
    
        parameters[0] = new ReportParameter("FullName", app.Name);
        parameters[1] = new ReportParameter("PhoneNumber", app.PhoneNumber.ToString());

        ReportViewer1.LocalReport.SetParameters(parameters);
        ReportViewer1.LocalReport.DataSources.Clear();
        ReportViewer1.ShowParameterPrompts = false;
        ReportViewer1.ShowPromptAreaButton = false;

    }

这是报告定义:

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

在此处输入图像描述

标签: c#asp.netwebformsvisual-studio-2017reportviewer

解决方案


尝试修复这条线。您的代码将中断,因为您需要一个包含两个参数的表,而不是一个。

ReportParameter[] parameters = new ReportParameter[2];

除此之外,请在此处查看问题:SSRS 报告定义比服务器更新,以获取有关特定错误的更多信息。


推荐阅读