我试图将一个String存储在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无法将类型'string'隐式转换为'Microsoft.SqlServer.Dts.Runtime.Variable'
答案 0 :(得分:4)
因为引用Dts.Variables是Variable元素的集合,因此您无法将字符串分配给此集合的元素。 (并且,正如另一个答案所指出的,这个集合是只读的)
可能你想要
Dts.Variables["myVar2"].Value = SQL;
答案 1 :(得分:2)
第一个错误的原因是Variables[]
索引器是只读的。也就是说,您只能从中读取Dts.Variables["myVar2"]
的值,而不是指定新值来替换它。索引器本质上是一个用于在Variables
集合上调用函数的语法快捷方式。
第二个错误源于您尝试将String
类型值分配给前面提到的索引器,该索引器返回类型为Microsoft.SqlServer.Dts.Runtime.Variable
的对象。同样,错误地使用索引器确实会引发第二个错误。
访问索引器返回的变量对象的值的正确方法是通过.Value
属性,就像您在示例代码的第一行中所做的那样:
Dts.Variables["myVar2"].Value = SQL;