Wie kann ich einen foreach-Schleifencontainer in SSIS verwenden, um ein mehrdimensionales Array zu durchlaufen?

Ich habe ein SSIS-Paket, das unter anderem einige Tabellen mit Skripten und einem foreach-Container aktualisiert. Ich benutzeSqlConnection undSqlCommand So rufen Sie diese Abfrage in einer Skriptaufgabe vor dem foreach-Container auf:

SELECT TOP 10 DirectoryID, DirectoryPath FROM ProjectDirectory ORDER BY LastAudit

und benutzeSqlDataReader um sie zu einem mehrdimensionalen Array hinzuzufügen [10,2]. Ich ordne das Array einer Objektvariablen zuDirectoryList damit ich sie in einem foreach-Schleifencontainer durchlaufen kann. Es sollte so aussehen wie {{"1", "C: \ Folder1"}, {"2", "C: \ Folder2"}, ...}, glaube ich.

Das Problem ist, dass ich diese Software erst vor ein paar Tagen verwendet habe und verwirrt bin, wie sich der foreach - Schleifencontainer durch die Schleife bewegtDirectoryList Variable. Im Moment habe ich auf der Registerkarte Auflistung des Containers den Enumerator auf Foreach From Variable Enumerator gesetzt, wobei die Variable auf festgelegt istUser::DirectoryList. Ich habe VariablenUser::DirectoryID auf Index 0 setzen undUser::DirectoryPath set to index 1. Ich versuche, eine Schleife nur durch die oberste Ebene des Arrays zu führen, sodass in jeder Schleife die ID- und Pfadvariablen "1" und "C: \ Folder1" zugewiesen werden und dann die nächste wenn es die Schleife durchläuft, werden sie "2" und "C: \ Folder2" usw. zugewiesen. Ich habe eine Skriptkomponente, die den Pfad verwendet, um einige Informationen zu finden, und ich verwende die ID, um die richtige Zeile eines SQL zu aktualisieren Tabelle.

Zum Debuggen muss ich mir die ID und den Pfad anzeigen lassenMessageBox.Show(Variables.DirectoryID + ", " + Variables.DirectoryPath) der ersten Iteration, und es zeigt "8, 8". Die 8 entspricht der ID der Zeile, die zuerst angezeigt werden soll. Beim nächsten Durchlauf wird zweimal der richtige Pfad "C: \ Folder1, C: \ Folder1" angezeigt. Die Variablenzuordnung funktioniert also anscheinend nicht, sondern ordnet beide Variablen demselben Index zu. Auf jeden Fall funktioniert es nicht. Daher denke ich, dass entweder (und vielleicht auch beides?) Der Foreach From Variable Enumerator nicht derjenige ist, den ich auswählen sollte, oder dass ich in einem Foreach-Container kein mehrdimensionales Array verwenden kann. Ich habe nichts gesucht und gefunden und das alles mag schwer zu verstehen sein, aber irgendwelche Vorschläge?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage