SQL Server 2017 LocalDB无法连接到Crystal Reports

2020-09-01 13:10发布

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

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


我已经使用SQL Express多年了,因此决定尝试使用LocalDB。 几分钟后,我安装了它并使用我的应用程序-直到尝试了Crystal Reports。 该报告非常庞大,包含约40个子报告。 有时我可以得到它来打印一个子报表,但是大约要花10分钟(在LocalDB之前使用SQL Express只需10秒)。 我怀疑这是一个连接字符串问题。

我正在使用VS 2017, VB.NET ,Crystal Reports 13sp25。有效的连接字符串 因为我的应用是

" Server =(localdb)\ MSSQLLocalDB; Integrated Security = true; AttachDbFileName = C:\ Program Files \ MyApp \ Data \ MyApp.mdf;"

这是我用于连接Crystal Reports数据库的代码。 它适用于SQL Express,但不适用于LocalDB。

使用crConnectionInfo

.ServerName = My.Application.GlobalAuditDB.PServerName

.DatabaseName = My.Application.GlobalAuditDB.PDatabaseName

.UserID = My.Application.GlobalAuditDB.PUserName

.Password = My.Application.GlobalAuditDB.PPassword

.IntegratedSecurity = False

结尾为

CrTables = Report.reportDocument.Database.Tables

'遍历报告中的每个表并应用LogonInfo

对于CrTable中的每个CrTable

crtableLogoninfo = CrTable.LogOnInfo

crtableLogoninfo.ConnectionInfo = crConnectionInfo

CrTable.ApplyLogOnInfo(crtableLogoninfo)

如果是CrTable.TestConnectivity(),则

如果(CrTable.Location.IndexOf("。")> 0)然后

CrTable.Location = CrTable.Location.Substring(CrTable.Location.LastIndexOf("。")+ 1)

其他

CrTable.Location = CrTable.Location

如果结束

如果结束

下一步

我试图像这样更改连接以模拟适用于该应用程序的连接字符串,但是它不适用于CR-没有错误,每个子报表仅花费10分钟而10秒:

使用crConnectionInfo

.ServerName = My.Application.GlobalAuditDB.PServerName

.DatabaseName =" MyDB"

.IntegratedSecurity = True

结尾为

感谢您的帮助/建议/示例。

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

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


我已经使用SQL Express多年了,因此决定尝试使用LocalDB。 几分钟后,我安装了它并使用我的应用程序-直到尝试了Crystal Reports。 该报告非常庞大,包含约40个子报告。 有时我可以得到它来打印一个子报表,但是大约要花10分钟(在LocalDB之前使用SQL Express只需10秒)。 我怀疑这是一个连接字符串问题。

我正在使用VS 2017, VB.NET ,Crystal Reports 13sp25。有效的连接字符串 因为我的应用是

" Server =(localdb)\ MSSQLLocalDB; Integrated Security = true; AttachDbFileName = C:\ Program Files \ MyApp \ Data \ MyApp.mdf;"

这是我用于连接Crystal Reports数据库的代码。 它适用于SQL Express,但不适用于LocalDB。

使用crConnectionInfo

.ServerName = My.Application.GlobalAuditDB.PServerName

.DatabaseName = My.Application.GlobalAuditDB.PDatabaseName

.UserID = My.Application.GlobalAuditDB.PUserName

.Password = My.Application.GlobalAuditDB.PPassword

.IntegratedSecurity = False

结尾为

CrTables = Report.reportDocument.Database.Tables

'遍历报告中的每个表并应用LogonInfo

对于CrTable中的每个CrTable

crtableLogoninfo = CrTable.LogOnInfo

crtableLogoninfo.ConnectionInfo = crConnectionInfo

CrTable.ApplyLogOnInfo(crtableLogoninfo)

如果是CrTable.TestConnectivity(),则

如果(CrTable.Location.IndexOf("。")> 0)然后

CrTable.Location = CrTable.Location.Substring(CrTable.Location.LastIndexOf("。")+ 1)

其他

CrTable.Location = CrTable.Location

如果结束

如果结束

下一步

我试图像这样更改连接以模拟适用于该应用程序的连接字符串,但是它不适用于CR-没有错误,每个子报表仅花费10分钟而10秒:

使用crConnectionInfo

.ServerName = My.Application.GlobalAuditDB.PServerName

.DatabaseName =" MyDB"

.IntegratedSecurity = True

结尾为

感谢您的帮助/建议/示例。

付费偷看设置
发送
8条回答
哎,真难
1楼 · 2020-09-01 13:16.采纳回答

嗨,泰德,

在这种情况下,是苹果和橘子比较了有效的方法和无效的方法。 CR需要特定的属性。

在这里可以获取VS .NET运行时的最新CR。

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

在该页面上是参数测试应用程序的链接,它具有登录属性和其中的ReplaceConnection()API。

阅读该页面的全部内容,您需要了解和使用许多升级信息。

Don

shere_lin
2楼-- · 2020-09-01 13:24

实际上,我的问题的答案非常简单。 我只需要将服务器指定为(localdb)\ MSSQLLocalDB并在连接上设置IntegratedSecurity = True。

一周热门 更多>