4

내 코드를 실행하려고, 나는 다음과 같은 오류가 나타납니다 System.Data.dllSystem.Data.OracleClient.dll형식 또는 네임 스페이스 이름 'OracleClient는'네임 스페이스에 존재하지 않는 'System.Data'

CS0234: The type or namespace name 'OracleClient' does not exist in the namespace 'System.Data' (are you missing an assembly reference?)

내가 포함했다 참조 하지만이 오류가 계속 발생합니다.

오류가 내 네임 스페이스 선언에 using System.Data.OracleClient 줄로 인해 발생합니다.

+0

좋아요. 당신이 편집 해 왔기 때문에 제 대답이 맞지 않아요. 당신이 이미 알고있는 것을 말하고 있었을뿐입니다.먼저 참조의 속성을 살펴보고 올바른 파일을 가리키고 있는지 확인하고 시스템에 둘 이상의 런타임이있는 경우 해당 버전의 .NET을 확인합니다. –

답변

5

using System.Data.OracleClient 지시문은 전체가 아닌 이름의 의미를 확인하려고 할 때 해당 네임 스페이스를 고려해야한다는 것을 의미합니다.

참조를 추가한다는 것은 주어진 어셈블리 (이 경우 System.Data.OracleClient.dll)에 대한 참조를 추가한다는 것을 의미합니다. VisualStudio, SharpDevelop 또는 MonoDevelop에서 프로젝트 탐색기보기에 참조 폴더가 표시됩니다. 마우스 오른쪽 버튼을 클릭하고 "참조 추가"(VisualStudio 및 SharpDevelop) 또는 "참조 편집"(MonoDevelop)을 선택하고 System.Data.OracleClient.dll에 추가하십시오.

nant를 사용하는 경우에는 nant 스크립트를 편집해야합니다.

어셈블리와 네임 스페이스가 겹치지 만 완전히 동일하지는 않습니다. 예를 들어 사용할 수있는 참조 방법입니다. System.Data.OracleClient.OracleDataReader 프로젝트는 현재 해당 어셈블리의 코드가 무엇인지 알고 있기 때문에 using 지시문을 사용하면 OracleDataReader 만 입력하면됩니다. 어셈블리와 네임 스페이스 사이에는 무거운 일치가 생기는 경우가 있습니다. 그 이유는 모든 사람이 쉽게 사용할 수 있기 때문입니다.하지만 어셈블리에 둘 이상의 네임 스페이스의 클래스가있는 경우와 네임 스페이스가 둘 이상의 어셈블리로 분할되는 경우가 있습니다. 고전적인 예로 mscorlib에는 System, System.Collections, System.IO 등의 클래스가 많이 있는데, .NET을 사용하지 않고 (.NET을 사용하는 일부 포함) .NET 프로젝트를 만들 수는 없지만 System.dll에는 무리가 있습니다. 당신이 실제로 사용하지 않고 얻을 수있는 것과 똑같은 네임 스페이스에서 더 많이 얻을 수 있습니다 (그러나 당신은 여전히 ​​시간의 99 %를 차지할 것입니다).

엄청나게 많은 라이브러리를 작성하지 않는 한 수천 개의 클래스가 겹쳐진 유스 케이스를 다루는 경우, 자신의 어셈블리는 단일 네임 스페이스 또는 하나 이상의 다른 네임 스페이스로 작동해야합니다 JaredksGreatCode은 단일 DLL 당 JaredksGreatCode.UserInterface입니다.

+0

System.Data.OracleClient.dll에 대한 참조가 이미 추가되었으며 내 참조 폴더에 표시됩니다 (Visual Studio 2010을 사용하고 있습니다). 오류가 계속 발생합니다. – jaredk

+0

진드기가 내 의견을 말하면서 문제를 찾는데 도움이 되었습니까? (다른 무엇이라도, 나는 사람들이 아직 무언가에 달라 붙지 않았다는 것을 알고, 응답에 조금 더 추가하면 다음 사람을 도울 수있다). –

+0

이렇게하면'using System.Data.OracleClient' 줄에 오류가 발생했습니다. – jaredk

-2

System.Data.OracleClient.dll에 대한 참조를 추가하십시오.

0

Oracle.DataAccess.dll에 대한 참조를 추가해야하고 에 대한 모든 참조를 Oracle.DataAccess.Client.blahblah으로 수동으로 연관시켜야했습니다.

이 정보가 도움이되기를 바랍니다.

0

아래와 같이 웹 구성 파일에 참조를 추가하십시오. 이것은 나를 위해 작동합니다.


<!--REFERENCES--> 
<compilation debug="true" targetFramework="4.5"> 
    <assemblies> 
    <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
    <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    <add assembly="System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </assemblies> 
</compilation> 
0

(가) 나를 위해 일한 다음 :

비주얼 스튜디오 -> 웹 사이트 -> 참조 추가 ... -> 프레임 워크 ->의 System.Data.OracleClient을 [체크 이 옵션]