首页 文章

在数据库中连接Crystal Reports

提问于
浏览
2

我在Windows窗体的Crystal Report中提供用户ID和密码时遇到问题 . 我在连接到SQL Server时使用了Windows身份验证,有时使用带有sql server身份验证的sa帐户 . 所以我尝试使用空密码的服务器名称,但它失败了 . 我也尝试使用sql server身份验证的sa登录,提供我在连接到sql server时使用的相同密码 . 用户ID是否与sqlserver的登录名不同?如何在Crystal Reports中提供用户ID和密码?

我还尝试添加带有UserID的dynamic logon parameter作为sa并使用它的密码 . 但仍然失败了 .

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

2 回答

  • 0

    希望您使用的是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);
                    }
    
  • 0

    嗨请查看下面的代码片段,这是我在使用水晶报表时设置数据库连接的方式 . 希望它有所帮助 .

    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);
                }
    

相关问题