运行时无法更改数据库

2020-08-19 00:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们正在将Visual Stud...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们正在将Visual Studio CRRuntime_32bit_13_0_22的Crystal Reports与Visual Studio 2017和DB2 Windows数据库一起使用。

我们需要在运行时更改数据库连接(服务器,数据库,用户密码)。 我们的应用程序具有示例报告,我们将与我们的应用程序一起分发给客户。

在尝试预览报告时(如果使用WPF查看器,则有任何区别),将引发异常,并显示以下消息:

无法连接:错误的登录参数。

table.ApplyLogOnInfo(table.LogOnInfo);

发生异常

在加载报告时,在预览之前,将执行以下代码来更改连接信息。 我基于以下示例: https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports+for+.NET+SDK+Samples?original_fqdn=wiki.sdn .sap.com#CrystalReportsfor.NETSDKS示例数据库

我没有使用子报表,因此没有遍历子报表列表。

这是我的代码:

私有void ChangeConnectionInfo(ReportDocument boReportDocument)
  {


 boReportDocument.SetDatabaseLogon(databaseUser,databasePassword,databaseServer,databaseName);


 TableLogOnInfo logOnInfo;
 foreach(boReportDocument.Database.Tables中的CrystalDecisions.CrystalReports.Engine.Table表)
 {
 logOnInfo = table.LogOnInfo;
 logOnInfo.ReportName = boReportDocument.Name;
 logOnInfo.ConnectionInfo.ServerName = databaseServer;
 logOnInfo.ConnectionInfo.DatabaseName = databaseName;
 logOnInfo.ConnectionInfo.UserID = databaseUser;
 logOnInfo.ConnectionInfo.Password = databasePassword;
 logOnInfo.TableName = table.Name;
 如果(schemaName.IsNotNullOrEmpty())
 table.Location = $" {schemaName}。{table.Name}";
 其他
 table.Location = table.Name;


 table.ApplyLogOnInfo(table.LogOnInfo);
 }
 }


 

我在调试时注意到的一件奇怪的事是,即使table.count为6,并且表可以为null,但我可以在调试器中查看整个列表。 我不知道这是问题的征兆还是调试器异常。

任何帮助将不胜感激。

埃里克

7条回答
槿木_熙
2020-08-19 01:06 .采纳回答

使用引擎仅用于更改服务器,前提是数据库未更改。

"下载WIKI"页面是我编写的用于使用ReplaceConnection()设置登录信息的应用程序。 看看是否适合您。

https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

它是Parameter测试应用,位于页面的中间。

问题可能是您需要将数据库名称转换为String()。

Don

一周热门 更多>