Exception 调用的目标已引发异常。ssis脚本任务

Exception 调用的目标已引发异常。ssis脚本任务,exception,sql-server-2012,Exception,Sql Server 2012,我在脚本任务中添加了外部dll文件。当我调试脚本任务时,代码正在工作,但当我不调试而直接执行SSIS包时,代码不工作。所以我得到了一个调用目标抛出的异常。ssis在此错误中。有谁能解决这个问题吗。我已经在GAC中注册了dll并重新启动了机器。但是它仍然给了我这个错误我很难找到这个问题的解决方案没有解决方案的问题已经在这里发布了至少几次了。这与读取某些DBF时.NET中的VFP OLEDB数据提供程序崩溃有关 显然,这个问题源于VFP允许您从小数点右侧提取数字并在左侧使用它们的方式。例如,如果列定

我在脚本任务中添加了外部dll文件。当我调试脚本任务时,代码正在工作,但当我不调试而直接执行SSIS包时,代码不工作。所以我得到了一个调用目标抛出的异常。ssis在此错误中。有谁能解决这个问题吗。我已经在GAC中注册了dll并重新启动了机器。但是它仍然给了我这个错误

我很难找到这个问题的解决方案没有解决方案的问题已经在这里发布了至少几次了。这与读取某些DBF时.NET中的VFP OLEDB数据提供程序崩溃有关

显然,这个问题源于VFP允许您从小数点右侧提取数字并在左侧使用它们的方式。例如,如果列定义为N5,3,则它最多只能容纳9.999的数字,但如果不需要小数点右侧的所有三位小数,则可以将左侧的剩余空间用作数字。所以这个专栏将容纳999.9!在任何情况下,它都会抛出InvalidOperationException。这会阻止您使用DataAdapter的Fill方法读取数据。解决方法是使用一个数据读取器,从头构建一个数据表,并填充每一列,每行一列。发生异常时,请为该值插入null。下面是一些C 2.0代码:

public DataTable GetVfpDataTable(string dbfFullPath)
{
  string sqlString = "SELECT * FROM " + Path.GetFileName(dbfFullPath);
  OleDbConnection oleConn = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=" +
      Path.GetDirectoryName(dbfFullPath) + ";Collating Sequence=MACHINE;");

  OleDbCommand oleCmd = new OleDbCommand(sqlString, oleConn);
  OleDbDataReader oleReader;
  DataColumn col;
  DataRow row;

  DataTable dbfTable = new DataTable();

  try
  {
      oleConn.Open();
      //Bug in VFP OLE Data Adapter blows up with error 
      //  "The provider could not determine the decimal value..."
      //  must read with a data reader row by row, column by column

      oleReader = oleCmd.ExecuteReader();
      for (int i = 0; i < oleReader.FieldCount; i++)
      {
          col = new DataColumn(oleReader.GetName(i), oleReader.GetFieldType(i));
          dbfTable.Columns.Add(col);
      }

      while (oleReader.Read())
      {
        row = dbfTable.NewRow();
        for (int i = 0; i < oleReader.FieldCount; i++)
        {
          try
          {
              row[i] = oleReader[i];
          }
          catch (InvalidOperationException)
          {
            row[i] = DBNull.Value;  //work-around for VFP OLEDB Provider glitch
          }
        }

        dbfTable.Rows.Add(row);
      }

  }
  catch (Exception eX)
  {
      throw new FileLoadException("Error Importing From VFP File\n" +
          eX.Message + "\nVFPDataAccess.cs:GetVfpDataTable()", dbfFullPath);
  }
  finally
  {
      oleConn.Close();
  }

  return dbfTable;
}