发送电子邮件的SSIS脚本任务未正确显示数据 [英] SSIS Script Task to send email doesnot show the data correctly

查看:22
本文介绍了发送电子邮件的SSIS脚本任务未正确显示数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试查询数据库并发送电子邮件正文中的内容。内容是每个用户的订单和详细信息。我正在尝试调用一个脚本任务来撰写正文,并且我正在使用发送电子邮件任务中的内容。当我尝试运行程序包时,它执行时没有错误,但下面是我在电子邮件中看到的内容

Execute SQL task output sent using Send Email Task in SSIS:

Customer Num    Rec Loc Strain  StrainCode  Age Sex Genotype    Sent From   Quantity
Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable    Microsoft.SqlServer.Dts.Runtime.Variable

下面是脚本

namespace ST_c074d0acfee7488b96d42a0f858efee7
{
       [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
        public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
        {

            #region VSTA generated code
            enum ScriptResults
            {
                Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
                Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
            };
            #endregion

            public void Main()
            {
                string header = string.Empty;
                string message = string.Empty;

                header = "Execute SQL task output sent using Send Email Task in SSIS:

";
                header += string.Format("{0}	{1}	{2}	{3}	{4}	{5}	{6}	{7}	{8}
", "Customer Num", "Rec Loc", "Strain", "StrainCode", "Age", "Sex", "Genotype", "Sent From", "Quantity");
                message = string.Format("{0}	{1}	{2}	{3}	{4}	{5}	{6}	{7}	{8}",
                                            Dts.Variables["User::CustomerNumber"].ToString(),
                                            Dts.Variables["User::ReceivingLocation"].ToString(),
                                            Dts.Variables["User::StrainName"].ToString(),
                                            Dts.Variables["User::StrainCode"].ToString(),
                                            Dts.Variables["User::Age"].ToString(),
                                            Dts.Variables["User::Sex"].ToString(),
                                            Dts.Variables["User::Genotype"].ToString(),
                                            Dts.Variables["User::SentFrom"].ToString(),
                                            Dts.Variables["User::OrderQuantity"].ToString());

            Dts.Variables["User::EmailMessage"].Value= header + message;

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

下面是包

并将所有必需的数据传递给脚本任务属性,如下所示

和获取所有数据的查询

和我正在进行映射的for循环

有谁能建议我这里遗漏了什么,为什么我的电子邮件没有显示真实数据

推荐答案

我发现了我必须做的问题

 Dts.Variables["User::Age"].Value.ToString(),

而不是

Dts.Variables["User::Age"].ToString(),

这篇关于发送电子邮件的SSIS脚本任务未正确显示数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆