2013-10-14 4 views
0

Visual C#/visual c sharp에서 Dts 변수에 String을 저장하려고합니다. 그러나 아래 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까? 나는 C#을 사용하기 전에 그것을 알아 내기 힘들었다. 나는 자바를 잘 알고있다.암시 적으로 형식 문자열을 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

방법이 VB이다 .그물 ? Visual C# – Steam

+0

편집 할 때까지 첫 번째 문장의 Visual Basic이 표시됩니다. 불행히도 나는 어떤 언어인지 알아 내려고 코드 스 니펫을 살펴 보지 않았다. – TheEvilPenguin

+0

@ TheEvilPenguin - 당신이 정말로 당신의 이름으로 살아가는 것처럼 보입니다. 좋아, 내가 실수 했어. Id는 두 번째 문장에서 C#을 사용했습니다. 내 것을 돌려받을 수 있을까요? – Steam

답변

3

참조 Dts.VariablesVariable 요소의 모음이므로이 컬렉션의 요소에 문자열을 할당 할 수 없습니다.

은 아마 당신이

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

감사합니다. 간단하고 명확합니다. – Steam

2

첫 번째 오류에 대한 이유 Variables[] 인덱서는 읽기 전용이다 원하는 (다른 대답은 지적하고,이 컬렉션은 읽기 전용입니다). 즉, Dts.Variables["myVar2"] 값을 읽을 수만 있고 새 값을 대입하지 않습니다. 인덱서는 본질적으로 Variables 컬렉션에서 함수를 호출하기위한 구문상의 바로 가기입니다.

두 번째 오류는 String 형식 값을 Microsoft.SqlServer.Dts.Runtime.Variable 형식의 개체를 반환하는 앞에서 언급 한 인덱서에 할당하려고한다는 사실에서 기인합니다. 다시 말하지만 실제로는 두 번째 오류를 유발하는 것은 인덱서의 잘못된 사용입니다.

인덱서에 의해 반환되는 변수 객체의 값에 액세스 할 수있는 적절한 방법이 .Value 속성을 통해이며, 같은 당신의 샘플 코드에서 첫 번째 줄에 일을 같이

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

그래서, SQL의 값을 "myVar2"에 넣을 수 있습니까? – Steam

관련 문제