如何在脚本任务中使用包变量?

时间:2011-06-06 16:12:13

标签: sql-server sql-server-2008 ssis

目前,我在SSIS包的Script任务中有一个硬编码的文件路径值。

我有一个字符串变量sPath。我应该如何在Script Task中使用这个变量sPath?

string strPath = "C:\\File.xls";
if( File.Exists(strPath))
{
    File.Delete(strPath);
}

1 个答案:

答案 0 :(得分:7)

以下是在Script Task中使用变量的一种可能方法。假设您的软件包上声明了一个名为 FilePath 的变量,如屏幕截图# 1 所示,那么您可以使用以下代码在Script Task内使用该变量。这是使用变量的可能方法之一。此处变量仅用于使用方法LockForRead读取值。如果使用LockForWrite方法声明变量,您还可以将值写入变量。

顺便说一下,Scrip Task代码中描述的功能也可以使用SSIS File System Task任务列表中提供的Control Flow来执行。

希望有所帮助。

在脚本任务中使用包变量:

C#代码,只能在 SSIS 2008 and above 中使用。

public void Main()
{
    Variables varCollection = null;
    string FilePath = string.Empty;

    Dts.VariableDispenser.LockForRead("User::FilePath");
    Dts.VariableDispenser.GetVariables(ref varCollection);

    FilePath = varCollection["User::FilePath"].Value.ToString();

    if (File.Exists(FilePath))
    {
        File.Delete(FilePath);
    }

    varCollection.Unlock();

    Dts.TaskResult = (int)ScriptResults.Success;
}

屏幕截图#1:

1