我试图通过在下拉列表中选择值来预览Crystal报表。它可以显示第一页,没有任何问题。但是,当我尝试按“下一页”按钮/键入页数时,它将提示“数据库登录失败”错误。
我尝试在Google上搜索有关此问题的信息,但仍然无法解决该问题。我已经经历过与此问题类似的很少线程,但仍然无济于事。
我插入了这个logOnInfo函数
public void setLogonInfo()
{
TableLogOnInfo logOnInfo = new TableLogOnInfo();
logOnInfo.ConnectionInfo.ServerName = "servername";
logOnInfo.ConnectionInfo.DatabaseName = "databasename";
logOnInfo.ConnectionInfo.UserID = "user";
logOnInfo.ConnectionInfo.Password = "pwd";
TableLogOnInfos infos = new TableLogOnInfos();
infos.Add(logOnInfo);
crystalReportViewer.LogOnInfo = infos;
}
我也有Init()函数
private void Page_Init(object sender, EventArgs e)
{
reportDocument = (ReportDocument)Session["reportDocument"];
crystalReportViewer.ReportSource = reportDocument;
}
最后,这是我单击搜索按钮时的显示报告功能
protected void DisplayReport() // display all value selected
{
string customerID = this.ddwn_cust.SelectedValue;
ReportDocument reportdocument = new ReportDocument();
reportdocument.Load(Server.MapPath("rptSalesRep.rpt"));
reportdocument.SetParameterValue("RepID", lblSalesRep.Text);
reportdocument.SetParameterValue("CustomerID", lblcustomer.Text);
reportdocument.SetParameterValue("ItemTypeID", txtItemType.Text);
reportdocument.SetParameterValue("startdate", Convert.ToDateTime(txtStartDate.Text));
reportdocument.SetParameterValue("enddate", Convert.ToDateTime(txtEndDate.Text));
crystalReportViewer.ReportSource = reportdocument;
setLogonInfo();
}
编辑 至于其中的Page_Load中的回发部分,我尝试了一些想法,但似乎仍然做不到。
protected void Page_Load(object sender, EventArgs e)
{
//my code
if (!IsPostBack){
if (Session["reportDocument"] != null)
{
reportDocument =(ReportDocument) Session["reportDocument"];
}
crystalReportViewer.ReportSource = reportDocument;
crystalReportViewer.RefreshReport();
}
但是,我仍然无法进入Crystal Report查看器的下一页。
对这个问题有解决方案吗?
提前谢谢!