SSIS脚本任务问题

时间:2017-03-10 16:13:15

标签: c# ssis ssis-2012

使用SSDT for Visual Studio 2013使用SmtpClient类通过ssis脚本发送电子邮件通知。

        public void Main()
    {
        SmtpClient v_EmailClient;
        string v_From = Dts.Variables["User::vFrom"].Value.ToString();
        string v_To = Dts.Variables["User::vTo"].Value.ToString();
        string v_EnvNameToSubject = Dts.Variables["User::vEnvNameToSubject"].Value.ToString();

        MailMessage v_EmailMessage = new MailMessage(v_From, v_To);
        v_EmailMessage.IsBodyHtml = true;
        v_EmailMessage.Subject = v_EnvNameToSubject + "SSIS email notification"; 
        //Concatenation of variable with the standard message does not work

        v_EmailMessage.Body = "Message text";
        v_EmailClient = new SmtpClient("SmtpServer");
        v_EmailClient.UseDefaultCredentials = true;
        v_EmailClient.Send(v_EmailMessage);

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

当我尝试连接变量v_EnvNameToSubject与标准主题文本不起作用时。我尝试使用try catch块来查找实际的错误消息,但这也无济于事。

1 个答案:

答案 0 :(得分:0)

首先,检查您的变量名称(和案例)vFromvTovEnvNameToSubject,因为它们区分大小写。

第二次,请尝试以另一种方式连接这些字符串(使用String.Concat()功能或使用stringbuilder

System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.AppendLine(v_EnvNameToSubject);
sb.AppendLine("SSIS email notification");
v_EmailMessage.Subject = sb.ToString();

v_EmailMessage.Subject = String.Concat(v_EnvNameToSubject,"SSIS email notification")

第三次,检查您的变量范围,并将它们添加到脚本任务ReadOnly Variables