SSIS脚本组件代码Sql Server 2008的一些问题

时间:2011-03-14 04:34:15

标签: c#-3.0 ssis

我有一个平面文件,其结构为

Id  Value
1   1,2,3
2   4,5

输出需要为

ID  Value
1   1
1   2
1   3
2   4
2   5

我有一个平面文件源和一个异步的脚本组件。在脚本编辑器中,我编写了以下代码

 public override void Input0_ProcessInputRow(Input0Buffer Row)
        {
              MyOutputBuffer.AddRow(); 
               string[] arr = Row.Column1.Split(',');
              foreach (string s in arr)
              {
                if (!string.IsNullOrEmpty(Row.Column0))
                {
                      MyOutputBuffer.ID = Row.Column0;
                      MyOutputBuffer.Values = s;
                      MyOutputBuffer.AddRow();
                }
              }        
        }
        public override void Input0_ProcessInput(Input0Buffer Buffer)
        {
            while (Buffer.NextRow())
            {
                Input0_ProcessInputRow(Buffer);
            }

            if (Buffer.EndOfRowset())
            {
                MyOutputBuffer.SetEndOfRowset();
            }
        }

但我得到以下输出

Id  Value
NULL    NULL
1   1
1   2
1   3
NULL    NULL
2   4
2   5
NULL    NULL

该计划有什么问题。

请帮忙

1 个答案:

答案 0 :(得分:1)

得到了修复

public override void Input0_ProcessInputRow(Input0Buffer Row)
    {     

        string[] arr = Row.Column1.Split(',');
        foreach (string s in arr)
        {
            MyOutputBuffer.AddRow();
            if (!string.IsNullOrEmpty(Row.Column0))
            {
                MyOutputBuffer.ID = Row.Column0;
                MyOutputBuffer.Values = s;

            }
        }
    }