让我先说明背景细节。我正在使用visual studio 2013编写一个vb.net Windows窗体应用程序来加载水晶报表(.rpt)文件。主报告和子报告使用来自Pervasive数据库的SQL命令(通过oledb连接),如下图所示。为了保护隐私,我已将数据库名称更改为DBNAME.
我在客户端计算机上安装了SAP Crystal Reports Runtime Redistributable 13.02。显然,我的计算机上有开发人员版本。 当我从我的计算机(用于开发的那个)运行构建时,一切似乎工作正常,但是当我尝试在客户端计算机上运行它时,我得到如下窗口:
这里有几点需要注意:
我已经尝试在查看器表单加载事件中强制创建凭据
CrystalReportViewer1.ReportSource = rpt
rpt.SetDatabaseLogon("", "", "FILESERVER", "DBNAME")
rpt.Subreports("Subreport2").SetDatabaseLogon("", "", "FILESERVER", "DBNAME")
rpt.Load()
但它似乎没有什么区别。我错过了什么?
好,我知道了。感谢Bugs指出我正确的方向。问题在于报告中的连接类型。使用“右键单击>数据库>设置数据源位置”更改与ODBC(RDO)的连接已取消凭据提示,但导致“无法打开连接”错误。从那里,我从普及控制中心寻找ODBC管理员的差异。我发现我的系统DSN碰巧与我的数据库名称相同(这就是为什么它让我感到困惑)。在客户端计算机上创建DSN解决了连接问题。