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