请考虑,我的数据库在一台服务器“RiboServer”和另一台服务器“IISServer”中的IIS。由于RiboServer存在一些问题,我已将数据库恢复到另一台服务器“NewServer”。
由于此更改,我的Web应用程序运行正常。但所有的水晶报告都没有公开。
它显示错误为 ASP.stores_indent_ascx - 无法打开连接。详细信息:[数据库供应商代码:17]无法打开连接。 IndentPOMRV {7BAD9D95-0A37-4041-8CBD-F4A3527C646E} .rpt详细信息:[数据库供应商代码:17]
这是我的代码:
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt =
new CrystalDecisions.CrystalReports.Engine.ReportDocument();
try
{
string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
string[] str = conn.Split(';');
string server = str[0].Substring(str[0].IndexOf(" = ") + 3);
string database = str[1].Substring(str[1].IndexOf(" = ") + 3);
string userid = str[2].Substring(str[2].IndexOf(" = ") + 3);
string password = str[3].Substring(str[3].IndexOf(" = ") + 3);
rpt.Load(Server.MapPath("~/Purchase/Reports/SupplyPurchaseorder.rpt"));
for (int i = 0; i < rpt.DataSourceConnections.Count; i++)
rpt.DataSourceConnections[i].SetConnection(server, database, userid, password);
rpt.SetParameterValue(0, POID);
rpt.SetParameterValue(1, UserName);
rpt.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, "SupplyPurchaseOrder");
}
catch (Exception ex)
{
rpt.Dispose();
BussinessLayer.RIBOException.Instance.HandleMe(this, ex);
}
我可以理解上面的错误。但在我的应用程序中,我有更多的水晶报告,很难在每个报告中更改数据库连接。所以请建议任何解决方案来解决这个问题。