我有一个使用Crystal Reports 2008作为报告工具的Windows应用程序。它在很长一段时间内工作正常,但昨天,当我试图加载任何报告时,我收到了这个错误:
CrystalDecisions.CrystalReports.Engine.DataSourceException: Unknown Query Engine Error
Error in File C:\Users\Magdy\AppData\Local\Temp\rpt_Stock_Cost {DC276D4F-79F4-43B9-8168-24E6B7BF490A}.rpt:
Unknown Query Engine Error ---> System.Runtime.InteropServices.COMException: Unknown Query Engine Error
Error in File C:\Users\Magdy\AppData\Local\Temp\rpt_Stock_Cost {DC276D4F-79F4-43B9-8168-24E6B7BF490A}.rpt:
Unknown Query Engine Error
at CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.ReplaceConnection(Object oldConnection, Object newConnection, Object parameterFields, Object crDBOptionUseDefault)
at CrystalDecisions.CrystalReports.Engine.Table.SetDataSource(Object val, Type type)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
--- End of inner exception stack trace ---
at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet)
at Diamonds.UIL.Forms.frm_ReportViewer.Load_Report(String File_FullPath, DataSet DS) in E:\Development\Bitco\Diamond\Project\Diamond 2.0.1\Diamonds\UIL\Reports\Forms\Viewer\frm_ReportViewer.cs:line 256
以下是我用于加载和分配报告数据源的代码:
DataSet ds = new DataSet();
reportDocument_.Load(File_FullPath);
reportDocument_.SetDataSource(ds);
ds
可以是类型化数据集。
经过一些谷歌搜索,我发现一些结果说我应该有网络服务,用户在Windows中的临时文件夹。虽然我认为这适用于Web应用程序,而不适用于Windows。我尝试了两个临时文件夹,以及异常中的上述文件夹,但都没有帮助。
我正在使用Visual Studio 2010,C#4.0,Windows应用程序
任何想法可能出错?
答案 0 :(得分:11)
如果您在Win7计算机上的VS2010(或VS2012)中编译,请尝试将以下内容添加到 app.config :
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
如果这不起作用(比如在我的机器上),请尝试在WinXP机器上的VS2010中进行编译。