簡體   English   中英

如何將Crystal報表連接到多個數據庫?

[英]How do I connect Crystal reports to multiple database?

我有一個帶有下拉菜單的網頁。 在下拉列表中,有來自服務器的數據庫列表。 選擇下拉菜單后,將顯示編號,我們可以單擊並生成水晶報告。

我的問題是我在水晶報表中為一個數據庫提供了數據源。 假設我選擇其他數據庫。 如何連接到多個數據庫的報告?

任何輸入將不勝感激。

您是使用CR設計器還是Visual Studio制作報告? 因為在字段資源管理器窗口中有一個連接部分。 通常,不建議連接到多個數據庫。 即使您在報表中使用例如2個或更多存儲過程,但如果它們沒有公用密鑰,也可能使您的生活變得復雜。

以下是我們使用的方法,它應該為您工作。 基本上,您必須確保報表訪問的每個表(或命令,視圖等)均已設置連接。 我不知道僅在主報表上進行設置的方法。

// create a ReportDocument
using (ReportDocument reportDoc = new ReportDocument())
{
    reportDoc.Load(path); // path to your .rpt file

    // get the connection string you want to use
    SqlConnectionStringBuilder conInfo = new SqlConnectionStringBuilder("<your connection string>");

    Tables crTables = reportDoc.Database.Tables;
    int tablecounter = 0;
    foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
    {
        CrystalDecisions.Shared.TableLogOnInfo logonInfo = crTable.LogOnInfo;

        logonInfo.ConnectionInfo = new ConnectionInfo()
        {
            DatabaseName = conInfo.InitialCatalog,
            ServerName = conInfo.DataSource
        };
        if (conInfo.IntegratedSecurity)
        {
            logonInfo.ConnectionInfo.IntegratedSecurity = true;
        }
        else
        {
            logonInfo.ConnectionInfo.UserID = conInfo.UserID;
            logonInfo.ConnectionInfo.Password = conInfo.Password;
        }

        crTable.ApplyLogOnInfo(logonInfo);
    }
}

暫無
暫無

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

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