【发布时间】:2015-07-16 13:11:45
【问题描述】:
我有一组当前的代码用于在 c# 中通过服务器连接加载 Crystal Report。
这是加载报告的代码:
CrystalReportViewer1.ParameterFieldInfo.Clear();
string reportName = Request.QueryString["rpt"];
if (reportName != null)
{
crystalReport = new ReportDocument();
crystalReport.Load(@"\\esco-iis\crystalreports\purchasing\po.rpt");
//crystalReport.Load(@"\\esco\crystalreports\purchasing\po.rpt");
var connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = "server";
connectionInfo.DatabaseName = "database";
connectionInfo.Password = "pass";
connectionInfo.UserID = "user";
connectionInfo.IntegratedSecurity = false;
crystalReport.SetDatabaseLogon("user", "pass", "server", "database");
Tables CrTables = crystalReport.Database.Tables;
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = connectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
CrystalReportViewer1.LogOnInfo.Add(crtableLogoninfo);
}
foreach (ReportDocument report in crystalReport.Subreports)
{
report.SetDatabaseLogon("user", "pass", "server", "database");
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in report.Database.Tables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = connectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
CrystalReportViewer1.LogOnInfo.Add(crtableLogoninfo);
}
}
string PO = Request.QueryString["PO"];
if (PO != null)
{
ParameterField parameter = new ParameterField();
ParameterDiscreteValue parameterValue = new ParameterDiscreteValue();
parameterValue.Value = PO;
parameter.Name = "@PO";
parameter.CurrentValues.Add(parameterValue);
CrystalReportViewer1.ParameterFieldInfo.Add(parameter);
}
}
当前状态:这在报表设置为直接连接到数据库时有效,但其中大约一半设置为使用 ODBC 连接。
尝试:我尝试将服务器名称切换为 ODBC 连接的名称,但这仍然返回相同的 Failed to open the connection. Failed to open the connection. 错误。
问题:我似乎无法弄清楚我可以在我的 ConnectionInfo 中进行哪些更改才能使其成功使用 ODBC 连接。我不断收到Failed to open the connection. Failed to open the connection.
我知道单独进行连接并设置报告源的解决方案,但这不可行,因为报告很多。
提前致谢!
【问题讨论】:
标签: c# asp.net crystal-reports