对象引用未设置为SSIS包中对象错误的实例

本文关键字:对象 错误 实例 包中 SSIS 设置 对象引用 | 更新日期: 2023-09-27 18:17:59

我在脚本任务中有以下代码,但当我尝试执行脚本时,我得到一个错误,其中包含以下消息:"异常已被调用的目标抛出。-->对象引用未设置为对象的实例。"

我正在尝试使用变量解决包中的死锁错误。基于区域的值,我试图填充另一个变量inputreregion。

    public void Main()
    {
        String InputFile;
        int StrLen;
        Variables var = null;    
        Dts.VariableDispenser.LockOneForWrite("User::Region", ref var);
        var[0].Value = "DEFAULT";
        InputFile = (String)vars["User::InputRegion"].Value;
        if (InputFile == "Europe.txt")
            var[0].Value = "European";
        if (InputFile == "Amers.txt")
            var[0].Value = "American";
        if (InputFile == "Tokyo.txt")
            var[0].Value = "Asian";
        else        
            var[0].Value = "Unknown";
        var.Unlock();
        Dts.TaskResult = (int)ScriptResults.Success;
        }
    }
}

对象引用未设置为SSIS包中对象错误的实例

根据给定的信息,我可以猜测:

 Variables var = null;  

使用null值初始化变量,然后使用它而不提供值。
因为你在那里使用了它(可能你也会得到异常)

  Dts.VariableDispenser.LockOneForWrite("User::Region", ref var);

如果上面的代码行没有为var设置值,你的程序可能会崩溃:

  • There: var[0].Value = "DEFAULT";
  • There: var[0].Value = "European";
  • There: var[0].Value = "American";
  • There: var[0].Value = "Asian";
  • There: var[0].Value = "Unknown";
  • Or There: var.Unlock();

可能的解决方案

试着给它一个有效值而不是null,以确保问题在那里。