2010年3月13日土曜日

DbProviderFactory

DbProviderFactoryを使用することにより、データプロバイダに依存しない実装が可能。で、備忘録

使用可能なProvider一覧を取得
  1. DbProviderFactories.GetFactoryClasses();  
machine.configより、DataProviderの情報を取得している。
戻り値はDataTable型なので、DataGridViewを使えば簡単に内容を確認することができる。
image

ApplicationでDataProviderを追加したい場合は、app.configに設定することで追加可能。 例えば、PostgreSQLの場合は、↓の様に設定。

  1. <system.data>  
  2. <DbProviderFactories>  
  3. <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Framework Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.8.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />  
  4. </DbProviderFactories>  
  5. </system.data>  
そうすることで、DbFactoryが取得可能となる。
image

app.configよりConnectionStringを取得してDbProviderFactoryを作成 

  1. ConnectionStringSettings css = ConfigurationManager.ConnectionStrings["MyConnection"];  
  2. DbProviderFactory factory = DbProviderFactories.GetFactory(css.ProviderName);  
ConfigurationManagerからConnectionStringSettingsを取得。(System.Configuration.dllの参照が必要)
ConnectionStringSettingsよりProviderNameを取得し、DbProviderを作成

あとは、factory.CreateXXXXX()で作成し放題!

0 件のコメント: