Windows服务无法打开连接

本文关键字:连接 服务 Windows | 更新日期: 2023-09-27 18:06:31

我的c# Windows服务自动发送电子邮件。在发送之前,我需要转换并附加我的报告为PDF。当我尝试导出PDF时,我在下一行得到一个异常:

cr.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, savePath);

打开连接失败(ODBC)

相同的代码在windows窗体应用程序中正常运行。我该如何解决这个问题?

public void GenerateReport(string rptpath, int no)
{
  try
  {
    string savePath = ConfigurationManager.AppSettings["Savepath"];
    ReportDocument cr = new ReportDocument();
    cr.Load(rptpath);
    TableLogOnInfo logInfo = new TableLogOnInfo();
    Tables crTables = cr.Database.Tables;
    foreach (Table crTable in crTables)
    {
      logInfo.ConnectionInfo.UserID = "sa";
      logInfo.ConnectionInfo.DatabaseName = "SunVue";
      logInfo.ConnectionInfo.ServerName = "SunVue";
      logInfo.ConnectionInfo.Password = "sa";
      logInfo.ConnectionInfo.IntegratedSecurity = false;
      crTable.ApplyLogOnInfo(logInfo);
      DateTime enddate = DateTime.Today;
      DateTime startdate = enddate.AddDays(-7);
      string reportFormula = string.Empty;
      if (no == 201)
      {
        cr.SetParameterValue("DateRange",startdate.ToString("dd'/'MM'/'yyyy")
                                + " to " + enddate.ToString("dd'/'MM'/'yyyy"));
        reportFormula = "{spilInvNum.OrderDate} in DateTime ("
                        + startdate.Year.ToString() + ","
                        + startdate.Month.ToString() + "," +
                        + startdate.Day.ToString() + ", 00, 00, 00) to DateTime ("
                        + enddate.Year.ToString() + ","
                        + enddate.Month.ToString() + ","
                        + enddate.Day.ToString() + ", 00, 00, 00)";
        //reportFormula = "{spilInvNum.OrderDate} in Date(" + startdate.Year.ToString() + "," + startdate.Month.ToString() + "," + startdate.Day.ToString() + ") " + " to DateTime (" + enddate.Year.ToString() + "," + enddate.Month.ToString() + "," + enddate.Day.ToString() + ") " + " and {spilInvNum.DocState} <> 6 and {spilInvNum.DocType} = 4 and {spilInvNum.AccountID} <> 2592";
        cr.RecordSelectionFormula = reportFormula;
      }
      cr.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, savePath);
      WriteToFile(savePath);
    }
  }
}

Windows服务无法打开连接

如何在OBDC中建立连接。

    您是否尝试在ODBC上建立连接时测试连接?
  1. 如何在报告向导中使用连接?使用OBDC创建?-在CR向导上连接时,如果创建了错误的连接,应该提示您。