【发布时间】:2018-03-01 23:00:59
【问题描述】:
让我先列出背景细节。 我正在使用 Visual Studio 2013 编写一个 vb.net Windows 窗体应用程序来加载一个水晶报告 (.rpt) 文件。主报表和子报表使用来自 Pervasive 数据库的 SQL 命令(通过 oledb 连接),如下图所示。出于隐私考虑,我已将数据库名称更改为 DBNAME。
我在客户端计算机上安装了 SAP Crystal Reports Runtime Redistributable 13.02。显然,我的电脑上有开发者版本。
当我从我的计算机(用于开发的计算机)运行构建时,一切似乎都运行良好,但是当我尝试在客户端计算机上运行它时,我得到一个如下窗口:
这里有几点需要注意:
在开发计算机上,没有出现这个提示。
由于某种原因,数据库名称显示在文件服务器名称应位于的位置
我从未设置用户名或密码,也从未需要用户从任何计算机通过控制中心访问此数据库 网络
没有可以想象的用户名和密码组合(包括网络凭据、Windows 凭据和离开它) 空白)
我尝试在查看器表单加载事件中强制使用凭据
CrystalReportViewer1.ReportSource = rpt
rpt.SetDatabaseLogon("", "", "FILESERVER", "DBNAME")
rpt.Subreports("Subreport2").SetDatabaseLogon("", "", "FILESERVER", "DBNAME")
rpt.Load()
但它似乎并没有什么不同。我错过了什么?
【问题讨论】:
-
这可能是您尝试运行报告的 PC 上的驱动程序问题,例如SQL Server Native Client 10。我在创建一些报告时发现了这一点,但在一些较新的 PC 上它丢失了,所以我必须安装驱动程序,这样报告就可以在不要求凭据的情况下运行。显然你使用的是不同的驱动程序,所以不确定这是否是问题,但我还是想发表评论。
-
这是一个很好的起点,虽然我不知道如何找到要使用的驱动程序或如何安装它
-
好的,所以我将报告中的连接从 OLEDB (ADO) 更改为 ODBC (RDO)。同样,在开发计算机上一切正常,但这次客户端计算机给我一个错误“无法打开连接”
标签: vb.net crystal-reports oledb