1

我正在使用以下代碼在遠程服務器上發佈水晶報表。當我嘗試運行水晶報表頁面Crystal報表查看器提示我輸入數據庫信息。由於發佈的水晶報告是使用開發服務器創建的。在我的水晶報表我使用OLEDB ADO連接Crystal Report憑據部署後提示

MyRepository _MyRepository = new MyRepository();    
System.Data.SqlClient.SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(); 
myConnection.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnStr"].ConnectionString; 
System.Data.SqlClient.SqlCommand MyCommand = new System.Data.SqlClient.SqlCommand("dbo.spMySP"); 
MyCommand.Connection = myConnection; 
MyCommand.Parameters.Add("@PositionID", SqlDbType.Int).Value = (cmbPositions.SelectedValue == "" ? 0 : Convert.ToInt32(cmbPositions.SelectedValue)); 
MyCommand.CommandType = System.Data.CommandType.StoredProcedure; 
System.Data.SqlClient.SqlDataAdapter MyDA = new System.Data.SqlClient.SqlDataAdapter(); 
MyDA.SelectCommand = MyCommand; 
ASale _DS = new ASale(); 
MyDA.Fill(_DS, "dbo.spMySP"); 
rptSale oRpt = new rptSale(); 
oRpt.SetDatabaseLogon("sa", "mypass"); 
oRpt.SetDataSource(_DS); 
oRpt.SetParameterValue(0, "param1"); 
oRpt.SetParameterValue(1, "param2"); 
oRpt.SetParameterValue(2, "param3"); 
oRpt.SetParameterValue(3, (cmbPositions.SelectedValue == "" ? 0 : Convert.ToInt32(cmbPositions.SelectedValue))); 
CrystalReportViewer1.ReportSource = oRpt; 
+0

我需要改變setDatabaseLogon如此,它也可以從web.config中 – Tassadaque 2011-01-26 08:43:44

回答

0

HI,

當你開發你的報告中,你使用Windows身份驗證登錄到數據庫建設的報告?

也許您可以嘗試再次打開報告並嘗試更新您在Crystal報告中設置的數據庫。例如。通過使用您在代碼中使用的相同登錄信息。

我通常的做法是將數據庫服務器名稱和數據庫名稱也放在代碼中 E.G. _CReportDoc.SetDatabaseLogon(用戶名,PW,服務器名稱,DB)

不知道是否可以幫助

+0

訪問憑據,但我想設置此信息通過web.config,以便我不需要更改我的報告的代碼發佈 – Tassadaque 2011-01-31 18:25:40