Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio VS 2008 Reporting Services报告定义生成_Visual Studio_Reporting Services_Reporting_Reportviewer - Fatal编程技术网

Visual studio VS 2008 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

我正在使用VS2008生成Reporting Services报告定义。问题是,每当我试图从流中加载报表定义时,都会出现错误

我有以下代码:

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的答案。我已经有一段时间没碰过那个项目了,但有机会我会试试的。