2013-04-07 3 views
0

Je reçois cette erreur lors de l'affichage du rapport de cristal. que dois-je faire.Comment afficher le rapport Crystal?

Une erreur liée au réseau ou à une instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (Fournisseur: Fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server)

code j'utilise est comme suit:

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

la 'DataSource' semble incorrecte. –

+0

Ce n'est pas une erreur de rapport de cristal, c'est une erreur SQL Server. Vérifiez votre chaîne de connexion et le fichier de base de données – Stasel

+0

Lorsque j'utilise SqlConnection con = new SqlConnection (ConfigurationManager.ConnectionStrings ["ConnectionString"]. ConnectionString); indique: Échec de l'ouverture de la base de données. Je ne veux pas utiliser le nom d'utilisateur n mot de passe. Que devrais-je faire? –

Répondre

0

Je pense que votre rapport Crystal vous essayez l'affichage a été effectué sous une autre chaîne de connexion a un autre nom de serveur. transmettez le nom du serveur et le nom de la base de données séparément au rapport. le code sera utile.

 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(); 
Questions connexes