首页 > 解决方案 > 从 SSIS 脚本任务传递文件名

问题描述

我正在尝试创建一个将平面文件加载到 SQL 服务器表中的 SSIS 包。

我已经能够将加载功能拼凑在一起。如果从脚本任务中找到文件名,我目前坚持将文件名传递回我想在平面文件连接字符串中使用它的变量。

Public Sub Main()
        '
        Dim di As DirectoryInfo = New DirectoryInfo("\\winshare\iFile\Cors2\AAA\AAA Employee Incentive Source Data\")

        Dim fi As FileInfo() = di.GetFiles("AAA Full PreReg Report*.csv")

        If fi.Length > 0 Then
            Dts.Variables("User::fileExists").Value = True
            Dts.Variables("User::FileName").Value = fi.name
        Else
            Dts.Variables("User::fileExists").Value = False
        End If

        ' Add your code here
        '
        Dts.TaskResult = ScriptResults.Success
    End Sub

我正在寻求帮助 Dts.Variables("User::FileName").Value = fi.name

为什么这行不通?

谢谢

标签: sql-servervb.netssisetlscript-task

解决方案


如果您要获取目录中的第一个文件,则可以使用以下代码行:

Dts.Variables("User::FileName").Value = fi(0).name

但是,如果您正在寻找循环文件,那么我建议使用 Foreach 循环容器来循环文件并将每个文件名存储在一个变量中:


推荐阅读