我使用以下代码在远程服务器上发布水晶报告。当我尝试运行水晶报表页面时,Crystal报表查看器会提示我输入数据库信息。由于发布的水晶报告是使用开发服务器创建的。在我的水晶报告中,我使用的是OLEDB ADO Connection
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 :(得分:0)
HI,
开发报告时,是否使用Windows身份验证登录数据库来构建报告?
也许您可以尝试再次打开报告并尝试更新水晶报告中的数据库设置。例如。使用您在代码中使用的相同登录信息。
我通常做的是将数据库服务器名称和数据库名称也放在代码上 例如。 _CReportDoc.SetDatabaseLogon(username,pw,ServerName,DB)
不确定是否可以提供帮助