我正在从c#表单中调用水晶报表,如下所示,但是在连接行上出现Invalid report file path
的错误
rep.DataSourceConnections[0].SetConnection(StrServer, StrDatabase, StrUserID, StrPwd);
报告路径字符串正确
string RepPath = Application.StartupPath + @"\" + vRepName;
因为当我注释给出错误的行时,它对我的开发有效
pc,但是当我将应用程序移至客户端PC时,因为连接字符串会有所不同,所以我将获得与db的连接错误,因此我正在从appsetting
读取连接字符串
if (vRepName == "REP0105.RPT")
{
ReportDocument rep = new ReportDocument();
ConnectionInfo info = new ConnectionInfo();
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "P_WHERE";
paramDiscreteValue.Value = vWHERE;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_ComparingFun";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.ComparingFun;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_TotalCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.TotalPatientCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_ResultCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.ResultPatientCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_Pct";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.PatientPct;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_TotalSessionCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.TotalSessionCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_ResultSessionCount";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.ResultSessionCount;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField();
paramField.Name = "P_SessionPct";
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = F0112.SessionPct;
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
RepViewer.ParameterFieldInfo = paramFields;
rep.DataSourceConnections[0].SetConnection(StrServer, StrDatabase, StrUserID, StrPwd);
rep.Load(RepPath);
RepViewer.ReportSource = rep;
rep.Refresh();
}