2009-07-08 73 views
1

好的这里是我有一个VB6应用程序正在重写为asp.net 3.5的情况。我有一大堆水晶报表正在升级到Crystal Reports 10.5(包含在Visual Studio 2008中)。所有的旧报告都使用OLEDB。我正在做的是将报表中使用的sql语句放入数据库中。接下来我运行一个自动化流程,从这些select语句创建一个Dataset,然后序列化DataSet并将模式和数据保存为XML文档。然后我进入旧报告将其更新到Crystal Reports 10.5并更改数据源位置,以便它使用XML文档。Crystal Reports - 提供了无效的参数。无法打开行集。 ADO.Net xml

当运行报表创建相同的数据集,并代替其序列为XML我把它分配给报告(见下文)

rd.Database.Tables(0).SetDataSource(ds) 

我已经测试过这一点,如果没有得到任何错误我创建新的报告,但是如果我采用现有报告并更改数据库位置,我会收到以下错误

提供了无效的参数。无法打开行集。文件C:\ DOCUME〜1 \ username \ LOCALS〜1 \ Temp \ R-302 {D49E0C73-47AC-4363-AAD5-E925DFCF446E} .rpt中的错误:数据库的参数无效。 在CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(例外五)在CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)在CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream

看起来好像报告仍在尝试连接使用OLEDB到旧的数据库。如果我使用完全相同的逻辑重写它,但通过上述错误更新了报告,我能够得到一份工作报告。我如何解决它?

回答

0

我有完全相同的错误和上下文(Visual Studio 2008中的Crystal Report)。 在新报告中使用我的新连接是好的,但将此相同连接分配给旧报告(带有“设置数据源位置”)时,在使用具有函数ExportToStream的报告时,我得到了此错误。

我最终做的是“数据库专家”,删除我的连接,并说“确定”到“删除文件”框中“从这个文件的报告中有字段,继续吗?”这样做会删除报告中的所有字段。我必须重新插入它们并重新选择我的组的字段,但至少,我不必重做所有布局。

我想这是Visual Basic的Crystal Report中的一个错误。

1

我在这里发布这是因为它是“无效参数提供晶体”的最高结果。

我正在Crystal Reports XI中处理一个报告,该报告已链接到我试图通过GUI更改的数据源。选择新的数据源并单击更新似乎什么也不做,我会关闭对话框,此时我会收到消息“无效的参数提供”。在最终关闭并重新打开文件之前,我尝试了很多事情,这些文件在我再次尝试时运行。

这使我可以在不删除任何关联字段的情况下修改数据源。

为了VPN目的,我的工作PC保持登录/开启/锁定24/7,并且我在前一天打开了有问题的报告。我的猜测是,与SQL实例的连接已经超时并且没有被重新建立。

我对这个老问题的谴责表示歉意,或者这是错误的做法;但鉴于网页在搜索结果中的突出地位,我希望这可以帮助别人。