2009-07-11 114 views
1

DbProviderクラスを使用して汎用DALコンポーネントを構築したいと考えています。これは、異なるデータベースプロバイダを切り替えるときに便利です。 Oracle 2.2がインストールされているマシンでは、マシン上で使用可能なすべてのデータベース・プロバイダをリストアップしようとすると、Oracleプロバイダ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

は、作品を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

私は私のDataTableの次の行を参照してください。ここで

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.dllへのあなたのGACにする必要があり、.NET Frameworkの2.0のよう

関連する問題