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”中显示的变量。 然后,您将能够在代码中引用它们。
您不必指定范围: User
或System
。 从每个名称中删除User::
如果它仍然不起作用 – 你必须拼错其中一个名字。
您还需要获取值并将其转换为字符串。 正确的格式是: Dts.Variables["Passphrase"].Value.ToString()
在尝试解决类似的问题后,我偶然发现了这一点。 我在您的代码中发现的第一个问题是您没有
。值
在串联的字符串中的.ToString之前。 我在我的网站上改变了这一点并且有效。