在SSIS脚本组件中创建时,变量不包含回车符

时间:2017-03-15 15:51:53

标签: c# sql-server ssis etl ssis-2012

我在SSIS中的脚本组件中创建了一个c#变量。我的计划是将先前的变量值与通过数据流的每一行的数据加上一个新行连接起来。然后,我将该变量的值分配给SSIS变量,以便在Send Mail Task中使用。

public class ScriptMain : UserComponent
{
    string myString;

    public override void PostExecute()
    {
        base.PostExecute();
        this.Variables.emailContent = myString;
    }

    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        myString = myString + Row.column1 + ", " + Row.column2 + Environment.NewLine;
    }

}

我的问题是,当发送电子邮件Environment.NewLine似乎没有做任何事情时,SSIS变量emailContent将在电子邮件中发送到一行。

我也试过使用\n,但没有运气。

有趣的是,当我将变量直接写入文本文件时,新行会按预期显示。

1 个答案:

答案 0 :(得分:0)

尝试使用\r\n

public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        myString = myString + Row.column1 + ", " + Row.column2 + "\r\n";
    }

请注意,这些符号等同于:

\r : CR
\n : LF

同时尝试复制反斜杠(因为您使用的是SSIS变量)

public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        myString = myString + Row.column1 + ", " + Row.column2 + "\\r\\n";
    }