为什么foreach循环容器内变量的值为null

Why is the value of a variable null inside a foreach loop container

我有一个包含 foreach 文件枚举器的程序包。现在我有一个名为 EmailTo 的变量,它由位于循环容器之前的 foreach 容器外的执行 sql 任务填充,因为我只需要 运行 执行 sql任务一次。 foreach 容器内的发送邮件任务正在访问变量 EmailTo。当我检查断点时。我了解到在 foreach 容器中 EmailTo 变量的值为空。这是为什么?

目前,我将 execute sql 任务移到 foreach 容器中以使其工作,因为我必须将它呈现给我的老板,但没有必要将 execute sql 任务移到其中循环,因为我只需要获取一次电子邮件。

我该怎么办

当您将执行 SQL 任务完整结果集存储在变量中时,它存储为记录集。

一个Recordset只能消费一次;如果它被发送邮件任务使用,则您不能再次使用它。

您可以使用脚本任务将 Recordset 复制到 DataTable 对象并将其存储在 SSIS 对象变量中。然后你可以多次使用它。

附加信息

  • I have two Foreach Loop,which hava same enumerated values.So how do I deal with it?