簡體   English   中英

如何顯示水晶報表?

[英]How to display 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";        
}

我認為您要顯示的Crystal報表是在另一個Connection字符串和另一個Server名稱下創建的。 將服務器名稱和數據庫名稱分別傳遞給報告。 該代碼將有所幫助。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM