无法在SSIS

时间:2015-04-24 19:35:18

标签: sql-server ssis foreach-loop-container

我有一个SSIS包,它在脚本任务中创建一个字符串列表,然后在Foreach循环容器中使用另一个脚本任务,一次从列表中获取值并做一些工作。

问题是,正如您在上一张图片中看到的那样,我无法在脚本任务中设置一个变量,该变量取决于另一个变量的值(参见第3张图片),因为包(?)赋值" Microsoft.SqlServer.Dts.Runtime.Variable"而不是我想要的ConstantPart变量的值。

这是第一个脚本任务中的一些代码:

public void Main()
    {
        bool fireAgain = false;
        string TaskName = Dts.Variables["System::TaskName"].ToString();

        try
        {
            string formattedDate = DateTime.Now.ToString("ddMMMyy", CultureInfo.InvariantCulture).ToUpper();

            string constantPart = Dts.Variables["User::ConstantPart"].ToString();

            string item01 = formattedDate + constantPart + "01";
            string item02 = formattedDate + constantPart + "02";
            string item03 = formattedDate + constantPart + "03";

            List<string> myList = new List<string>();

            myList.Add(item01);
            myList.Add(item02);
            myList.Add(item03);

            Dts.Variables["User::MyListObject"].Value = myList;

            Dts.Events.FireInformation(3, TaskName, description: "Items added to collection: " + myList.Count.ToString()
                , helpFile: "", helpContext: 0, fireAgain: ref fireAgain);
        }
        catch (Exception ex)
        {
            Dts.Events.FireError(18, TaskName, ex.Message, "", 0);
        }

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

从第二个开始:

    public void Main()
    {

        bool fireAgain = false;
        string taskName = Dts.Variables["System::TaskName"].ToString();

        try
        {            
            string currentItem = (string) Dts.Variables["User::SingleItem"].Value;

            Dts.Events.FireInformation(3, taskName, "Processing Item: " + currentItem, "", 0, ref fireAgain);
        }
        catch (Exception ex)
        {
            Dts.Events.FireError(18, taskName, "While processing item..." + ex.Message, "", 0);
            throw;
        }
        Dts.TaskResult = (int)ScriptResults.Success;
    }

你可以find the solution here.

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here

0 个答案:

没有答案