2013-10-14 170 views
0

我想在Visual c#/ visual c sharp中的Dts变量中存储字符串。但是,我得到下面的错误。我该如何解决 ?我之前没有使用过C#,所以我很难弄清楚。虽然我确实知道Java。不能隐式地将类型字符串转换为microsoft.sqlserver.dts.runtime.variable

 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 [对象]' 不能被分配到 - 它是只读

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

+0

这是怎么动.net?它是可视的C# – Steam

+0

直到你编辑它在第一句话中说Visual Basic。不幸的是,我没有浏览代码片段,试图找出它是哪种语言。 – TheEvilPenguin

+0

@TheEvilPenguin - 看起来你真的不辜负你的名字。好的,我犯了一个错误。尽管我在第二句话中确实使用了C#。我可以拿回我的一个吗? – Steam

回答

3

因为参考Dts.VariablesVariable元素的集合,从而可以将字符串没有分配给这个集合的元素。 (和,作为另一个答案指出,此集合为只读)

也许你想

Dts.Variables["myVar2"].Value = SQL; 
+0

谢谢,它很简单明了。 – Steam

2

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

第二个错误源于您试图将String类型值分配给前面提到的索引器,该索引器返回类型为Microsoft.SqlServer.Dts.Runtime.Variable的对象。再一次,这是索引器的错误使用,实际上是在提示第二个错误。

访问索引器返回的变量对象的值正确的方法是通过.Value财产,一样的,你在你的示例代码做的第一行:

Dts.Variables["myVar2"].Value = SQL; 
+0

那么,将SQL的值放入“myVar2”中吗? – Steam

相关问题