首页 > 解决方案 > 导航下一页时水晶报表查看器提示数据库登录失败

问题描述

我试图通过在下拉列表中选择值来预览水晶报表。它能够毫无问题地显示第一页。但是当我尝试按下一页按钮/输入页数时,它会提示数据库登录失败错误。

我试图用谷歌搜索这个问题,但仍然无法解决这个问题。我已经经历了与此问题类似的几个线程,但仍然无济于事。

我插入了这个 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();
               }

然而,我仍然无法进入水晶报表查看器的下一页。

这个问题有什么解决办法吗?

先感谢您!

标签: c#asp.netcrystal-reports

解决方案


推荐阅读