以编程方式更改参数会断开数据库连接

2020-08-19 09:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)当我通过C#代码更改报表的参数时...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当我通过C#代码更改报表的参数时,这里似乎出现了一个奇怪的问题,出现了"无法打开连接"错误。 如果我通过" verify database"传递了报表最近在设计器中运行过的参数,那么它将运行良好。 但是,当我仅更改1个参数BatchNumber时,就会出现错误。 它可以在设计器窗口中正常运行并进行打印预览。 但是同样,当我从以前运行"验证数据库"的方式更改参数方式时,此代码将无法工作。

我已将代码精简为仅此,以验证是否是导致此错误的参数更改。

 var activeReport = new ReportDocument();
 activeReport.Load(this.CRFullFilePath);
 activeReport.SetDatabaseLogon(" XXXXXXX"," XXXXXXXXX");
 activeReport.SetParameterValue(" BatchNumber",this.BatchNum);
 activeReport.SetParameterValue(" BusinessUnit",this.BusinessUnit);

 varexportedFolderPath = this.AttachmentPDFDestinationPath + this.BatchNum;

//创建子文件夹(如果尚不存在)
 如果(Directory.Exists(exportedFolderPath)==否)
 {
     Directory.CreateDirectory(exportedFolderPath);
 }

 varexportedFileName = $ @" {exportedFolderPath + this.CRFullFilePath.GetFileNameFromFullFilePath()}-Exported.pdf";

 activeReport.ExportToDisk(ExportFormatType.PortableDocFormat,exportedFileName);
 

如果很重要,则参数是查询参数。 为什么更改参数以查看CR查看器/打印预览是有效的,但是我在上面的代码中却做不到?

5条回答
粗暴的香蕉
2020-08-19 10:33 .采纳回答

对于其他有此问题的人,这是我设置环境变量的方式:

 var envVariables = Environment.GetEnvironmentVariable(" PATH");
 var path = envVariables.Split(new char [1] {Path.PathSeparator});
 foreach(路径中的var路径)
 {
     如果(path.ToLower()。包含(@" \ oracle \")&&
         File.Exists(路径+ @" \ tnsping.exe"))
     {
         var oraclePath = path.Substring(0,path.LastIndexOf(@" \"));;
         Environment.SetEnvironmentVariable(" ORACLE_HOME",oraclePath);
     }
 } 

一周热门 更多>