我正在尝试创建一个对象变量,该变量将保存来自Execute SQL Task 的集合。该集合将在整个 ETL 包的多个脚本任务中使用。
问题是,在Fill第一个Script Task 的第一个之后,对象变量变空。以下是我如何将变量用于数据表的代码:
try
{
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter();
da.Fill(dt, Dts.Variables["reportMetrics"].Value);
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
Dts.TaskResult = (int)ScriptResults.Failure;
}
Run Code Online (Sandbox Code Playgroud)
在整个ETL包中,Script Task组件都会有这段代码。由于变量在第一个之后变空Fill,因此我无法重用对象变量。
我猜测 Fill 方法与此有关。
谢谢!