Задача сценария службы SSIS для отправки электронной почты не отображает данные правильно

#c# #sql #sql-server #ssis #etl

#c# #sql #sql-сервер #ssis #etl

Вопрос:

Я пытаюсь запросить базу данных и отправить содержимое в теле письма. Содержание-это порядок и детали для каждого пользователя. Я пытаюсь вызвать задачу сценария для составления текста, и я использую содержимое в задаче отправки электронной почты. Когда я пытаюсь запустить пакет, он выполняется без ошибок, но ниже указано, что я вижу в своем электронном письме

 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:nn";  header  = string.Format("{0}t{1}t{2}t{3}t{4}t{5}t{6}t{7}t{8}n", "Customer Num", "Rec Loc", "Strain", "StrainCode", "Age", "Sex", "Genotype", "Sent From", "Quantity");  message = string.Format("{0}t{1}t{2}t{3}t{4}t{5}t{6}t{7}t{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 я выполняю сопоставление

введите описание изображения здесь

Может ли кто-нибудь, пожалуйста, подсказать мне, чего мне здесь не хватает и почему в моей электронной почте нет реальных данных

Ответ №1:

Я нашел проблему, которую мне нужно было решить

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

Вместо

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