CrystalReportViewer в приложении Windows

#c# #windows #crystal-reports

#c# #Windows #crystal-отчеты

Вопрос:

я использую код для отправки ConnectionInfo в CrystalReportViewer

 private void button1_Click(object sender, EventArgs e)
    {
        ConnectionInfo myConnectionInfo = new ConnectionInfo();
        myConnectionInfo.ServerName = "192.168.3.58";
        myConnectionInfo.DatabaseName = "SHRK-Traffic";
        myConnectionInfo.UserID = "sa";
        myConnectionInfo.Password = "pass";
        setDBLOGONforREPORT(myConnectionInfo);
        crystalReportViewer1.Visible = true;
    }
    private void setDBLOGONforREPORT(ConnectionInfo myconnectioninfo)
    {
        TableLogOnInfos mytableloginfos = new TableLogOnInfos();
        mytableloginfos = crystalReportViewer1.LogOnInfo;
        foreach (TableLogOnInfo myTableLogOnInfo in mytableloginfos)
        {
            myTableLogOnInfo.ConnectionInfo = myconnectioninfo;
        }
    }
  

я работаю с этим кодом в веб-приложении, и он работает нормально .. но в приложении Windows он показывает эту ошибку

ошибка

я получаю сообщение об ошибке

Комментарии:

1. я сделал это другим способом Val objReport=new Val(); objReport.SetDatabaseLogon(«sa», «Pass», «192.168.3.58», «SHRK-Traffic»); crystalReportViewer1.ReportSource = objReport; где «val» — это имя отчета

Ответ №1:

Вам нужно создать объект TableLogOnInfo, затем присвоить его объекту ConnectionInfo правильную информацию, т.е.:

         TableLogOnInfo loginDetails = new TableLogOnInfo();

        loginDetails.ConnectionInfo.ServerName = "ALFA1\ACMSDB";
        loginDetails.ConnectionInfo.UserID = "***";
        loginDetails.ConnectionInfo.Password = "***";
        loginDetails.ConnectionInfo.DatabaseName = "database";
        loginDetails.ConnectionInfo.IntegratedSecurity = false;
  

Затем продолжайте и добавьте этот настроенный объект TableLogOnInfo в свою коллекцию LogOnInfo:

          crystalReportViewer1.LogOnInfo.Add(loginDetails);