连接数据库中的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,并使用它的密码。但还是失败了。
我已经知道如何在数据库中连接我的应用程序,但我认为它与水晶报告不同。
希望您使用的是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);
}