【发布时间】:2014-08-27 20:41:16
【问题描述】:
我在脚本任务中填充了一个 List,其中包含一个具有 3 个属性的自定义类。
我想让这些属性可用于 SSIS 中的 Foreach 循环容器中的变量。
SSIS 对象变量可以接受哪些 c# 数据类型?我没有太多运气将列表转换为数组(如果我只使用 1 个属性,它可以正常工作,但一旦我使用两个属性就会失败)。
编辑: 如果我填充这样的数组:
string[] newArrayB = new string[] { "A1", "A2", "A3" };
然后我可以将数组传递给 SSIS 对象变量,并使用 Foreach From Variable Enumerator 循环遍历它。将 1 列映射到 SSIS 字符串变量。
如果我填充这样的数组:
string[,] newArrayA = new string[3, 2] { { "A1", "Account A1" }, { "A2", "Account A2" }, { "A3", "Account A3" } };
然后我可以将数组传递给 SSIS 对象变量,但如果我将两列映射到索引 0 和索引 1 上的不同 SSIS 字符串变量,则无法循环。它只是循环遍历每一列,就好像它是一个。
如果我使用 ADO 枚举器,我会得到“变量不包含有效数据对象”。
我的List最初来自GetDirectories:
var folders = Directory.GetDirectories(FolderRoot).Where(d => Regex.IsMatch(Path.GetDirectoryName(d), "^[0-9]*")).ToList();
然后我将其拆分为帐号部分和文件夹名称的其余部分。我假设我需要将 List 更改为 Array 以使其可用于 Foreach。
【问题讨论】:
-
你可以看看Loop。我会用 ADO 来做同样的事情。
-
@t_m 如果我创建一个虚拟数组: string[,] newArray = new string[3, 2] { { "A", "Account A" }, { "B", "Account B " }, { "C", "账户 C" } };并将其分配给我无法使用 ado 枚举器访问第二列的对象变量
-
数组基本上是一个表,
"A", "Account A"是记录 1,"B", "Account B"是记录 2,依此类推。在 foreach 循环中,您可以将尽可能多的字段访问到变量中。这是一个例子Foreach Loop。一个问题.. 从哪里获取数据以填充您的数组(文件/数据库)?