C# 当数据库移动到另一台服务器时,Crystal报表未打开 请考虑,我的数据库在一个服务器“River中”,IIS在另一个服务器“IISServer”中。由于RiboServer中的某些问题,我已将数据库还原到另一台服务器“NewServer”
由于此更改,我的web应用程序运行良好。但并非所有的水晶报告都是公开的 它将错误显示为 ASP.stores\u indent\u ascx-无法打开连接。详细信息:[数据库供应商代码:17]无法打开连接。IndentPOMRV{7BAD9D95-0A37-4041-8CBD-F4A3527C646E}。rpt详细信息:[数据库供应商代码:17] 这是我的代码:C# 当数据库移动到另一台服务器时,Crystal报表未打开 请考虑,我的数据库在一个服务器“River中”,IIS在另一个服务器“IISServer”中。由于RiboServer中的某些问题,我已将数据库还原到另一台服务器“NewServer”,c#,asp.net,crystal-reports,C#,Asp.net,Crystal Reports,由于此更改,我的web应用程序运行良好。但并非所有的水晶报告都是公开的 它将错误显示为 ASP.stores\u indent\u ascx-无法打开连接。详细信息:[数据库供应商代码:17]无法打开连接。IndentPOMRV{7BAD9D95-0A37-4041-8CBD-F4A3527C646E}。rpt详细信息:[数据库供应商代码:17] 这是我的代码: CrystalDecisions.CrystalReports.Engine.ReportDocument rpt =
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);
}
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt=
新的CrystalDecisions.CrystalReports.Engine.ReportDocument();
尝试
{
string conn=ConfigurationManager.ConnectionString[“ConnectionString”].ToString();
字符串[]str=conn.Split(“;”);
字符串服务器=str[0]。子字符串(str[0]。IndexOf(“=”)+3);
字符串数据库=str[1]。子字符串(str[1]。IndexOf(“=”)+3);
字符串userid=str[2]。子字符串(str[2]。IndexOf(“=”)+3);
字符串密码=str[3]。子字符串(str[3]。IndexOf(“=”)+3);
Load(Server.MapPath(“~/Purchase/Reports/SupplyPurchaseorder.rpt”);
对于(int i=0;i
我能理解上面的错误。但在我的应用程序中,我有更多的crystal报表,很难在每个报表中更改数据库连接。因此,请建议解决此问题的任何解决方案。使用Crystal Reports SDK 你好,面包车,请检查一个类似的案例:@NidheeshNNamboodhiri:是的。但我有200多份报告。有没有其他方法可以简化它?您可以使用Crystal Reports或RAS SDK来实现这一点。