0

我正在尝试将字符串存储在 Visual c#/visual c sharp 中的 Dts 变量中。但是,我得到下面的错误。我该如何解决 ?我以前没有使用过 C#,所以我很难弄清楚。不过,我确实很了解 Java。

        String v = Dts.Variables["myVar1"].Value + "";
        String x = Dts.Variables["myVar2"].Value + v + "'";
        Dts.Variables["myVar2"] = SQL;  // Why do I get an error here ?

错误是 -

错误 1 ​​属性或索引器 'Microsoft.SqlServer.Dts.Runtime.Variables.this[object]' 无法分配给 - 它是只读的

错误 2 无法将类型“字符串”隐式转换为“Microsoft.SqlServer.Dts.Runtime.Variable”

4

2 回答 2

4

因为引用Dts.Variables变量元素的集合,因此您不能将字符串分配给该集合的元素。(而且,正如另一个答案所指出的,这个集合是只读的)

可能你想要

Dts.Variables["myVar2"].Value = SQL;
于 2013-10-14T21:06:26.160 回答
2

第一个错误的原因是Variables[]索引器是只读的。也就是说,您只能从中读取 的值,Dts.Variables["myVar2"]而不能分配新值来替换它。Variables索引器本质上是在集合上调用函数的语法快捷方式。

第二个错误源于您试图将String类型值分配给前面提到的返回类型对象的索引器Microsoft.SqlServer.Dts.Runtime.Variable。同样,真正提示第二个错误的是索引器的错误使用。

访问索引器返回的变量对象的值的正确方法是通过.Value属性,就像您在示例代码的第一行中所做的一样:

Dts.Variables["myVar2"].Value = SQL;
于 2013-10-14T21:06:40.790 回答