连接数据库中的Crystal Reports

本文关键字:Crystal Reports 数据库 连接 | 更新日期: 2023-09-27 18:20:39

我在Windows窗体的Crystal Report中提供用户Id和密码时遇到问题。我在连接SQL Server时使用了Windows身份验证,有时使用sa帐户进行SQL Server身份验证。所以我用一个空白密码尝试了服务器名称,但失败了。我还尝试了sql server身份验证的sa登录,提供了与我连接到sql server时使用的密码相同的密码。用户Id与sqlserver的登录名不同吗?我将如何在Crystal Reports中提供用户Id和密码?

我还尝试添加动态登录参数,其中UserID为sa,并使用它的密码。但还是失败了。

我已经知道如何在数据库中连接我的应用程序,但我认为它与水晶报告不同。

连接数据库中的Crystal Reports

希望您使用的是Report文档,这里是用于动态设置连接的C#代码片段。如果有,您可能还需要遍历子报告来设置连接

for (int i = 0; i < reportDocument.DataSourceConnections.Count; i++)
                {
                    reportDocument.DataSourceConnections[i].SetConnection(Server.Name, Database.Name, Server.User.Name,Server.User.Password);
                    reportDocument.DataSourceConnections[i].SetLogon(Server.User.Name, Server.User.Password);
                }

Hi请查看下面的代码片段,这就是我在使用crystal报表时设置数据库连接的方式。希望能有所帮助。

            ReportDocument cryRpt = new ReportDocument();
            TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
            TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
            ConnectionInfo crConnectionInfo = new ConnectionInfo();
            Tables CrTables;
            cryRpt.Load(Application.StartupPath + "''CrystalReport1.rpt");

            crConnectionInfo.ServerName = "server Name";
            crConnectionInfo.DatabaseName = "Database Name";
            crConnectionInfo.UserID = "sa";
            crConnectionInfo.Password = "****";
            CrTables = cryRpt.Database.Tables;
            foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
            {
                crtableLogoninfo = CrTable.LogOnInfo;
                crtableLogoninfo.ConnectionInfo = crConnectionInfo;
                CrTable.ApplyLogOnInfo(crtableLogoninfo);
            }