未分配SSIS脚本任务变量值

时间:2017-12-19 13:13:17

标签: ssis script-task

我有这个脚本任务我用来为字符串变量赋值,以用作平面文件的连接字符串。该变量具有指向仅包含标题行的空白文件的默认路径,如果该文件存在于我的传入目录中,则脚本应将变量值更改为该文件的路径。我已经创建了一个断点,逐行检查了该行的文件[0]的值,将值分配给var,它包含正确的字符串值。不幸的是,在脚本退出后,变量没有更改的值。我确实将变量检查为读/写而不是只读。我出错了什么想法?

public void Main()
{
    // TODO: Add your code here

    string incoming = Dts.Variables["User::DirIncoming"].Value.ToString();

    foreach (Variable var in Dts.Variables)
    {
        if (var.QualifiedName.StartsWith("User::Conn"))
        {
            string varName = var.QualifiedName.Substring(10);
            string[] files = Directory.GetFiles(incoming, varName + "*");
            if (files.Length > 0)
            {
                var.Value = files[0];
            }
        }
    }

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

1 个答案:

答案 0 :(得分:0)

我没有意识到我的变量的默认值是通过表达式分配的,因此我需要更改我的表达式而不是我的值。我将有问题的行改为以下代码,现在一切都很好。谢谢大家一起来看看。

var.Expression = $"\"{files[0]}\"".Replace("\\","\\\\");