2009-07-11 3 views
1

DbProvider 클래스를 사용하여 일반 DAL 구성 요소를 생성하려고합니다. 다른 데이터베이스 공급자간에 전환 할 때 편리합니다. Oracle 2.2가 설치된 시스템에서 Oracle Provider ODP.NET은 시스템에서 사용 가능한 모든 데이터베이스 제공자를 나열하려고 시도 할 때 나열되지 않습니다.DbProviderFactories에 나열되지 않은 Oracle 데이터 공급자 (ODP.NET)

DataTable dtable = DbProviderFactories.GetFactoryClasses(); 

Oracle.DataAccess.dll을 참조하고 OracleConnection 클래스를 사용하여 Oracle에 연결하는 것은 문제가되지 않습니다.

OracleConnection con = new OracleConnection(); 

내가 뭘 잘못하고 있니?

편집 : 이 page에 따르면 목록에 "Oracle Data Provider for .NET"이 표시됩니다.

답변

2

.NET 프레임 워크로 GAC에 있어야하는 방법 DbProviderFactories.GetFactoryClasses의 작품입니다 ...

기본적으로 (app.config가없는 경우) machine.config에서 system.data /DBProviderFactories 섹션을 찾습니다. 기본적으로 액세스 할 수있는 모든 "등록 된"db 공급자는 해당 섹션에서 찾을 수 있습니다.

그래서 app.config system.data/DBProviderFactories 섹션이나 machine.config에 추가하십시오. 같은

뭔가 :

<configuration> 
    <system.data> 
    <DbProviderFactories> 
     <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description=".Net Framework Data Provider for Oracle" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
    </DbProviderFactories> 
    </system.data> 
</configuration> 

그리고 당신의 ODP.NET 버전 지원 DbProviderFactories 있는지 확인하십시오. Oracle Database 10g Release 2가 필요하다고 생각합니다.

0

내가 내 데이터 테이블에 다음 행을 참조 코드 실행 :

OracleClient Data Provider .Net Framework Data Provider for Oracle 
System.Data.OracleClient System.Data.OracleClient.OracleClientFactory, 
System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089 

의 System.Data.OracleClient 여기 2.0

관련 문제