我在脚本任务中有以下代码,但是当我尝试执行脚本时,我收到一条错误消息,出现以下消息:“调用目标引发异常.--->对象引用未设置为一个对象的实例。“
我试图通过使用变量解决我的包中的死锁错误。基于Region的值,我正在尝试填充另一个变量InputRegion。
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;
}
}
}
答案 0 :(得分:2)
根据给定的信息,我可以猜到:
Variables var = null;
您使用null
值初始化变量,然后在不给出值的情况下使用它
因为你在那里使用它(可能也是你得到例外的地方)
Dts.VariableDispenser.LockOneForWrite("User::Region", ref var);
如果上面的代码行未将值设置为var,则程序可能会崩溃:
var[0].Value = "DEFAULT";
var[0].Value = "European";
var[0].Value = "American";
var[0].Value = "Asian";
var[0].Value = "Unknown";
var.Unlock();
尝试为其提供有效值而不是null
,以确保问题存在。