2011-03-14 41 views
0

我有一个平面文件,其结构是作为一些问题,SSIS脚本组件代码,SQL Server 2008中

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

得到了修复

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; 

      } 
     } 
    } 
+1

你可能想继续前进,将此作为答案让人们知道它,而无需打开回答。 :-) – DKnight 2011-03-14 18:12:55