Asp.net 为什么水晶报表登录提示
为什么我在VS2010 asp.net中执行crystal reports时,仍在下面过程的第二页上收到用户和密码提示。 当我在查看器中单击“下一步”,然后询问用户id和密码时,第一页上并没有提示Asp.net 为什么水晶报表登录提示,asp.net,crystal-reports,Asp.net,Crystal Reports,为什么我在VS2010 asp.net中执行crystal reports时,仍在下面过程的第二页上收到用户和密码提示。 当我在查看器中单击“下一步”,然后询问用户id和密码时,第一页上并没有提示 public void connectCrystal(ReportDocument repdoc) { ReportDocument rptDoc = new ReportDocument(); ConnectionInfo conInfo = new ConnectionInfo()
public void connectCrystal(ReportDocument repdoc)
{
ReportDocument rptDoc = new ReportDocument();
ConnectionInfo conInfo = new ConnectionInfo();
rptDoc.Load(Server.MapPath("") + "\\Crystal_Reports\\ABC.rpt");
ConnectionInfo conInfo = new ConnectionInfo();
conInfo.ServerName = "S1";
conInfo.DatabaseName = "CR";
conInfo.UserID = "USER1";
conInfo.Password = "1234";
Tables tables = rptDoc.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = conInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
crv.ReportSource = rptDoc;
}
请帮助我猜您还需要设置表位置。我无法检查确切的语法,但表对象有一个属性位置。位置可能包含表的全名,因此它看起来像DatabaseName.dbo.TableName。如果您要更改数据库,则需要准备新位置并使用table.location=“your new location here”进行设置。我们可以像我那样在报表的设计模式下设置数据库和表位置。我在桌面应用程序中应用了相同的代码,它工作得很好,但在Web版本中,当我从crystal report browser单击下一页时,它总是弹出“用户登录”窗口。第一页上没有登录提示。啊,好的。我错过了。Web应用程序将丢失实例化的报表对象,并尝试再次实例化它。您需要将ReportDocument rptDoc保存到会话变量中,并在页面加载时加载它。