c# - 报表定义可能是使用更高版本的 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">
解决方案
尝试修复这条线。您的代码将中断,因为您需要一个包含两个参数的表,而不是一个。
ReportParameter[] parameters = new ReportParameter[2];
除此之外,请在此处查看问题:SSRS 报告定义比服务器更新,以获取有关特定错误的更多信息。
推荐阅读
- php - 我创建了一个受密码保护的网页。它可以工作,但是会显示错误。警告:第 74 行 .... 中未定义的数组键“密码”
- c - 为具有相同端口的 ipv6 和 ipv4 创建套接字
- flutter - 使用颤振将多个参数传递给命名路由
- autodesk-forge - 数据管理 API 403 错误:无法验证此用户
- azure - API-Key 上的 ADF 替换函数问题
- nservicebus - 调用/请求创建的 IHandleMessages 实例
- c# - WPF 的第一步:如何填充网格中的单元格?
- java - 如何解压缩 jsonlz4 Mozilla Firefox 会话文件?
- .net - 在没有 Visual Studio 的情况下安装 Xamarin
- java - Apache Tomcat 服务器子域