c# - SSIS ForEach 来自变量枚举器,使用 C# 创建的列表 - 变量中的对象不包含枚举器

标签 c# visual-studio-2015 ssis

我一直在努力重构一个 SSIS 包,它将一堆日志文件复制到我们网络上的一个文件夹中,检查目标文件夹中的所有文件,然后删除任何超过我们保留政策的文件。看起来应该一切正常,但出现上述错误。

大纲: 对象类型的变量“dailyFilesToDelete”,由 ForEach 文件循环内的脚本任务填充。 我简化了我的代码以添加我创建的单个文件来测试这个新包并尝试触及问题的核心。

var fileListDelete = new List<string>();
fileListDelete.Add(@"Q:\xpcttvcpc_live_Full_201912050000.bak");
Dts.Variables["dailyFilesToDelete"].Value = fileListDelete.GetEnumerator();
Dts.TaskResult = (int)ScriptResults.Success;

下一步是失败的 Foreach 循环。

枚举器:来自变量枚举器的 Foreach

枚举变量:User::dailyFilesToDelete

变量映射:User::deleteFileName

我怀疑问题出在我如何将我的字符串列表传递到 dailyFilesToDelete 中。我最初传递的是列表本身,当我看到“变量不包含枚举器”错误时,我确信添加 GetEnumerator 调用会修复它。

最佳答案

我认为您的问题是将枚举器结果分配给变量。试试看

Dts.Variables["dailyFilesToDelete"].Value = fileListDelete;

在幕后,SSIS Foreach 枚举器将调用枚举器方法来实现奇迹。

关于c# - SSIS ForEach 来自变量枚举器,使用 C# 创建的列表 - 变量中的对象不包含枚举器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561273/

相关文章:

sql-server - 如何从 MS Access 迁移到 SQL Server 2005?

c# - 从 LINQ to SQL 查询加载 DataGridView

c# - 后退按钮硬件不刷新页面 xamarin forms c#

c# - 循环遍历标志枚举,同时忽略组合类型

c++ - 在 Windows 7 上安装 Qt 5.5

sql - SSIS 序列容器事务选项

c# - 以编程方式创建具有不同域名和不同虚拟机的 asp web 应用程序的多个实例

c# - 升级到VS2015时突然出现警告CS0436

c# - VS 2015 - C# 使用命名空间简化/截断

sql-server - 由于嵌套容器而导致重复的日志条目