2013-04-07 4 views
0

Я получаю эту ошибку при отображении отчета о кристалле. что мне делать.Как отобразить Crystal Report?

При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (Поставщик: Поставщик именованных каналов, ошибка: 40 - Не удалось открыть подключение к SQL Server)

код я использую выглядит следующим образом:

protected void Page_Load(object sender, EventArgs e) 
{   
    SqlConnection con = new SqlConnection("Data Source=./SQLEXPRESS;AttachDbFilename=~/App_Data/Database.mdf;Integrated Security=True;User Instance=True");   
    DataSet1 ds = new DataSet1(); 
    SqlDataAdapter da = new SqlDataAdapter("SELECT  ID, Name, Dept, Salary FROM   dbo.Table2", con); 
    da.Fill(ds.View2); 
    ReportClass myReportObject = new ReportClass(); 
    myReportObject.ResourceName = "CrystalReport1.rpt";   
} 
+0

'DataSource' представляется неправильным. –

+0

Это не критическая ошибка отчета, это ошибка SQL Server. Проверьте строку подключения и файл базы данных – Stasel

+0

Когда я использую SqlConnection con = new SqlConnection (ConfigurationManager.ConnectionStrings ["ConnectionString"]. ConnectionString); говорится: Ошибка входа в базу данных. Я не хочу использовать имя пользователя n Пароль. Что мне делать? –

ответ

0

Я думаю, что ваш отчет кристалл, который вы пытаетесь для отображения было сделано в другой строке подключения, имеет другое имя сервера. передать имя сервера и имя базы данных отдельно к отчету. код будет полезен.

 ReportDocument cryRpt = new ReportDocument(); 
     TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); 
     TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); 
     ConnectionInfo crConnectionInfo = new ConnectionInfo(); 
     Tables CrTables ; 

     cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt"); 

     crConnectionInfo.ServerName = "YOUR SERVER NAME"; 
     crConnectionInfo.DatabaseName = "YOUR DATABASE NAME"; 

     // if sql server authentication mood 

     crConnectionInfo.UserID = "YOUR DATABASE USERNAME"; 
     crConnectionInfo.Password = "YOUR DATABASE PASSWORD"; 

     CrTables = cryRpt.Database.Tables ; 
     foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables) 
     { 
      crtableLogoninfo = CrTable.LogOnInfo; 
      crtableLogoninfo.ConnectionInfo = crConnectionInfo; 
      CrTable.ApplyLogOnInfo(crtableLogoninfo); 
     } 

     crystalReportViewer1.ReportSource = cryRpt; 
     crystalReportViewer1.Refresh();