1
我開發了一種設置Crystal Reports連接的方法。設置連接信息時的性能問題Crystal Reports
此方法首先從配置文件抓取連接字符串,創建一個Crystal Reports ConnectionInfo對象。然後
以下代碼接管5秒運行:
Dim myTables As Tables = report.Database.Tables
Dim myTableLogonInfo As TableLogOnInfo = New TableLogOnInfo()
myTableLogonInfo.ConnectionInfo = myConnectionInfo
然後,代碼接管6秒運行:
For Each myTable As CrystalDecisions.CrystalReports.Engine.Table In myTables
myTable.ApplyLogOnInfo(myTableLogonInfo)
myTable.LogOnInfo.ConnectionInfo.DatabaseName = myTableLogonInfo.ConnectionInfo.DatabaseName
myTable.LogOnInfo.ConnectionInfo.ServerName = myTableLogonInfo.ConnectionInfo.ServerName
myTable.LogOnInfo.ConnectionInfo.UserID = myTableLogonInfo.ConnectionInfo.UserID
myTable.LogOnInfo.ConnectionInfo.Password = myTableLogonInfo.ConnectionInfo.Password
Next
這隻發生第一次的形式被加載,其後的時間是
335ms(與5349ms相比) 和 52ms(與6228ms相比)
但是,當應用程序重新加載時,會再次發生相同的慢速時間。
我的報告中一般不超過3張。在這種情況下只有一張桌子。
這是目前正在測試中,VS2008和SQLServer2005都在本地運行。在質量保證環境中也會出現同樣的問題,即應用程序在客戶端上運行,數據庫位於同一局域網上的服務器上。
所以我的問題是,我可以提高這部分代碼的速度嗎?爲什麼設置報告連接信息需要很長時間?我是否錯誤地連接到報告?
任何想法?
謝謝,
這需要一段時間來加載大量的晶體庫。你確定它不是'report.Load()',這需要很長時間。 – dotjoe 2009-11-10 21:07:12
我有一個StopWatch開始和停止這些代碼塊,所以我不認爲這是Load()方法。我實際上並沒有在任何地方調用Load方法,但是我做myReport.ExportToDisk(),然後我也在新的報表窗口中顯示報表。 – 2009-11-11 04:46:18
你是否已經在調試模式中檢查代碼,看看你是否可以縮小到特定的代碼行? – Dusty 2009-11-11 15:34:09