Visual studio VS 2008 Reporting Services报告定义生成
我正在使用VS2008生成Reporting Services报告定义。问题是,每当我试图从流中加载报表定义时,都会出现错误 我有以下代码:Visual studio VS 2008 Reporting Services报告定义生成,visual-studio,reporting-services,reporting,reportviewer,Visual Studio,Reporting Services,Reporting,Reportviewer,我正在使用VS2008生成Reporting Services报告定义。问题是,每当我试图从流中加载报表定义时,都会出现错误 我有以下代码: var loaded = XDocument.Load(filePath); LocalReport ret = new LocalReport(); using (var stream = new MemoryStream()) { var writer = new StreamWriter(stream); loaded.Save(wr
var loaded = XDocument.Load(filePath);
LocalReport ret = new LocalReport();
using (var stream = new MemoryStream())
{
var writer = new StreamWriter(stream);
loaded.Save(writer);
var ret = new LocalReport();
ret.LoadReportDefinition(stream);
var r= ret.GetParameters();
}
执行最后一行时,它将抛出LocalProcessingException,其中包含以下文本:
{"The report definition is not valid. Details: O elemento raiz está em falta."}
详细信息转换为“根元素丢失”
有什么不对劲吗
编辑:XML定义正确。问题出在定义加载之后的某个地方 您是否尝试将MemoryStream保存到单独的文件中,并将其与原始文件进行比较?在再次读取之前,必须将该流重置回位置0。否则,
LoadReportDefinition
将从流的末尾开始读取
var loaded = XDocument.Load(filePath);
LocalReport ret = new LocalReport();
using (var stream = new MemoryStream())
{
var writer = new StreamWriter(stream);
loaded.Save(writer);
writer.Close();
writer.Position = 0;
var ret = new LocalReport();
ret.LoadReportDefinition(stream);
var r= ret.GetParameters();
}
请参见上的CreateMemoryStream(),该文件完全相同。这就是我不明白的原因。你介意分享这个文件吗
LoadReportDefinition
通常工作正常,我从未听说过它有任何问题。可能文件中有一些格式稍有错误,这会使它混淆。我通过创建一个临时文件并加载它来解决这个问题。这是文件:Tks的答案。我已经有一段时间没碰过那个项目了,但有机会我会试试的。