我有我的數據庫和應用程序在運行時水晶報表(網頁,API &服務總線,所有在運行時創建的Crystal Reports)在同一臺服務器上。所有在運行時都能完美地創建報告。創建使用遠程SQL Server作爲數據源
移動的數據庫到不同的服務器,其只允許從該應用服務器的遠程連接。
對於我的數據庫連接,我不得不在我的項目做的是改變服務器從(本地)的連接字符串中的數據庫服務器的IP地址,而這一切工作正常。
但是看來,如果這是剛剛從改變(本地)服務器的IP地址的水晶報表不工作(給一個「數據庫登錄失敗」錯誤)
我不知道的問題,但對於本地創建的報告(之前上傳.RPT到服務器),我必須創建在服務器設置爲「本地」(數據源位置)的連接。由於我無法從我的本地機器遠程訪問新的數據庫,我不能改變的)
我用一下如下代碼:
string server = ConfigurationManager.AppSettings["Server"];
string database = ConfigurationManager.AppSettings["Database"];
string user = ConfigurationManager.AppSettings["DatabaseUser"];
string password = ConfigurationManager.AppSettings["DatabasePassword"];
var report = new ReportClass {FileName = reportPath};
report.Load();
report.SetDatabaseLogon(user, password, server, database);
var parameterValue = new ParameterDiscreteValue {Value = item.Id};
var parameter = new ParameterValues {parameterValue};
report.DataDefinition.ParameterFields["@id"].ApplyCurrentValues(parameter);
report.ExportToDisk(ExportFormatType.PortableDocFormat, path);