【发布时间】:2012-05-24 14:06:04
【问题描述】:
我有一个 SSIS 包,它使用脚本和一个 foreach 容器以及其他一些东西来更新几个表。我正在使用 SqlConnection 和 SqlCommand 在 foreach 容器之前的脚本任务中调用此查询:
SELECT TOP 10 DirectoryID, DirectoryPath FROM ProjectDirectory ORDER BY LastAudit
并正在使用SqlDataReader 将它们添加到多维数组[10,2]。我将数组分配给对象变量DirectoryList,以便我可以在foreach 循环容器中遍历它。我相信它应该看起来像 { {"1", "C:\Folder1"}, {"2", "C:\Folder2"}, ...}。
问题是我几天前才开始使用这个软件,对 foreach 循环容器如何循环通过 DirectoryList 变量感到困惑。目前,在容器的集合选项卡中,我将 Enumerator 设置为 Foreach From Variable Enumerator,变量设置为User::DirectoryList。我将变量User::DirectoryID 设置为索引0,并将User::DirectoryPath 设置为索引1。我试图让它循环遍历数组的顶层,以便在每个循环中分配ID 和路径变量到“1”和“C:\Folder1”,然后下次通过循环时,它们被分配给“2”和“C:\Folder2”等。我有一个脚本组件,它使用路径来查找一些信息,我使用 id 来更新 sql 表的正确行。
为了调试,我让它显示第一次迭代的 ID 和路径 MessageBox.Show(Variables.DirectoryID + ", " + Variables.DirectoryPath),它显示“8, 8”。 8 对应于应该首先显示的行的 id。下一次运行时,它给了我两次正确的路径,“C:\Folder1,C:\Folder1”。所以显然变量映射不起作用,它将两个变量映射到同一个索引。在任何情况下它都不起作用,所以我在想,变量枚举器的 Foreach 不是我应该选择的,或者我不能在 foreach 容器中使用多维数组。我已经搜索并没有找到任何东西,这一切可能很难理解,但是有什么建议吗?
【问题讨论】: