对象引用未设置为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;
}
}
}
根据给定的信息,我可以猜测:
Variables var = null;
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: - Or There:
var.Unlock();
var[0].Value = "Unknown";
可能的解决方案
试着给它一个有效值而不是null
,以确保问题在那里。