Ошибка входа в Crystal Report Viewer при входе на следующую страницу - PullRequest
0 голосов
/ 02 апреля 2019

Я попытался просмотреть отчет Crystal, выбрав значения в раскрывающемся списке. Он способен показывать 1-ю страницу без проблем. Но когда я попытаюсь нажать кнопку «Следующая страница» / ввести номер страницы, появится сообщение об ошибке «Ошибка входа в базу данных».

Я пытался обойти эту проблему, но все еще не смог ее решить. Немного тем, похожих на эту проблему, я уже прохожу, но все еще безрезультатно.

Я вставил эту функцию 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();
        }

EDIT Что касается раздела обратной передачи в 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 Viewer.

Какие-нибудь решения этой проблемы?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...