我需要一些帮助。Crystal Reports和登录问题
其实,我已经读过关于这个问题,我认为我已经解决了它,但它一直困扰着我。
这是关于不同登录在开发和生产环境。
这应该是解决方案(EF和SQL Server):
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder((model.Connection as EntityConnection).StoreConnection.ConnectionString);
ConnectionInfo ci = new ConnectionInfo();
ci.ServerName = builder.DataSource;
ci.DatabaseName = builder.InitialCatalog;
ci.UserID = builder.UserID;
ci.Password = builder.Password;
report.SetDatabaseLogon(ci.UserID, ci.Password, builder.DataSource, ci.DatabaseName);
foreach (CrystalDecisions.CrystalReports.Engine.Table tbl in report.Database.Tables)
{
TableLogOnInfo logon = tbl.LogOnInfo;
logon.ConnectionInfo = ci;
tbl.ApplyLogOnInfo(logon);
}
我从实体连接提取登录信息,并将其应用到报告中的所有表。这应该够了吧。我只添加SetDatabaseLogon()以确保,但这不是必需的。
现在,当我在生产环境中运行报表时,报表弹出一个显示CORRECT服务器名称(生产服务器)的数据库登录屏幕,数据库旁边没有任何东西(这是我关心的),正确的用户名和无密码,要求输入登录信息。
我输入它,但CR表示“登录失败,请重试”。我的意思是WTF。我使用完全相同的凭证通过Management Studio连接到数据库。
我正在使用WPF查看器,顺便说一句。
我真的被困在这里,我做了一些调试,连接信息获取所有正确的数据,所以它必须是报告谁是罪魁祸首,但我该怎么办?
任何帮助,将不胜感激。我希望有人在我面前遇到同样的问题。
问候
谢谢,乔恩。很少有好的指针。我会尝试他们,并让你知道它是否对我有帮助。 – 2012-08-06 09:39:34