SSIS在脚本任务中显示变量值

我正在进行一些测试,将执行SQL任务中的完整结果集输出到Foreach循环中,如下所示

在此处输入图像描述

我只想将我的变量值输出到消息框,但它似乎不起作用。

public void Main() { try { // TODO: Add your code here string Variables = Dts.Variables["User::ClientID"].ToString() + Dts.Variables["User::Passphrase"].ToString() + Dts.Variables["User::KeyFileName"].ToString() + Dts.Variables["User::InboundEncryptionRequired"].ToString() + Dts.Variables["User::SftpResponseRequired"].ToString() + Dts.Variables["User::OutboundDecryptionRequired"].ToString() + Dts.Variables["User::SftpHost"].ToString() + Dts.Variables["User::SftpPort"].ToString() + Dts.Variables["User::SftpUserName"].ToString() + Dts.Variables["User::Active"].ToString() + Dts.Variables["User::SftpDownloadFrom"].ToString() + Dts.Variables["User::SftpUploadTo"].ToString() + Dts.Variables["User::SftpDeleteFilesFromRemote"].ToString() + Dts.Variables["User::ConnectionProtocol"].ToString(); MessageBox.Show(Variables); } catch (Exception Ex) { MessageBox.Show(Ex.Message); } } } 

}

我只是得到“元素无法在集合中找到”或者其他东西,即使我知道查询输出了2行。

我还在foreach循环上映射了我的变量,并在scrip任务上指定了只读变量。

*更新*

这让我疯了。 我已经三次检查了我的变量名,可以确认我得到了完整的结果集。

在此处输入图像描述

我从我的脚本任务变量中删除了User ::但仍然没有运气。

听起来好像你的一个变量名拼写不正确,并且在数组中找不到它。

你也可以使用

 string Variables = String.Format("{0},{1},...",Dts.Variables["User::ClientID"],Dts.Variables["User::Passphrase"],...) 

显示值或设置变量字符串。

您必须传入正在使用的变量。 双击脚本任务,在“脚本任务编辑器”模式窗口中,输入要在“ReadOnlyVariables”或“ReadWriteVariables”中显示的变量。 然后,您将能够在代码中引用它们。

脚本任务编辑器

您不必指定范围: UserSystem 。 从每个名称中删除User:: 如果它仍然不起作用 – 你必须拼错其中一个名字。

您还需要获取值并将其转换为字符串。 正确的格式是: Dts.Variables["Passphrase"].Value.ToString()

在尝试解决类似的问题后,我偶然发现了这一点。 我在您的代码中发现的第一个问题是您没有

。值

在串联的字符串中的.ToString之前。 我在我的网站上改变了这一点并且有效。