C# 脚本任务中的SSIS对象变量

C# 脚本任务中的SSIS对象变量,c#,object,ssis,C#,Object,Ssis,因此,我将“执行SQL任务”的结果分配给SSIS中的一个对象变量。我使用了一个对象变量而不是字符串,因为只存储了一个结果,并且该结果远远大于8000个字符的限制。我想在脚本任务中访问此信息 我已经在脚本任务中将对象变量设置为只读变量,并且可以在脚本任务本身中将其设置为对象变量,但我似乎无法访问该值 以下是我想要的: Execute SQL Task -> object variable Object variable -> script task Within Script task

因此,我将“执行SQL任务”的结果分配给SSIS中的一个对象变量。我使用了一个对象变量而不是字符串,因为只存储了一个结果,并且该结果远远大于8000个字符的限制。我想在脚本任务中访问此信息

我已经在脚本任务中将对象变量设置为只读变量,并且可以在脚本任务本身中将其设置为对象变量,但我似乎无法访问该值

以下是我想要的:

Execute SQL Task -> object variable
Object variable -> script task
Within Script task{
    String Result = (string)Dts.Variables["User::String"].Value.ToString();

我尝试过使用这种确切的语法,它似乎返回变量的类型而不是值。我也尝试过使用数据集,但似乎不起作用。访问该变量值的最佳方法是什么?

4000个字符的限制,而不是8000个字符的限制,仅适用于表达式。一个变量中可以存储超过4k个字符。这就是说,取出
(字符串)
cast。我怀疑有一些奇怪的操作顺序on@billinkc删除
(字符串)
强制转换似乎无法修复它,返回的值是
“System.Object”
I stand corrected。当执行SQL任务返回结果集(至少使用OLE DB提供程序)并且源系统的数据类型是LOB时,在我的例子中是varchar(max)类型,
Dts.Variables[“User::objVar”].Value.GetType().ToString()
生成系统对象。这让我想到了建议的
Microsoft.VisualBasic.Information.TypeName(x)
方法,但它只会产生一个
\u ComObject
一天的空闲时间