Patrick McDonald の回答を拡張するには、プロバイダー名と接続文字列をアプリケーション構成ファイルの <connectionStrings> セクションに保存します。次に、プロバイダーをアプリケーションにハードコーディングする必要はありません。
ConnectionStringSettings c = ConfigurationManager.ConnectionStrings["MyConnectionName"];
if (c != null)
{
DbProviderFactory factory = DbProviderFactories.GetFactory(c.ProviderName);
IDbConnection connection = factory.CreateConnection();
connection.ConnectionString = c.ConnectionString;
...
}
アプリケーション構成ファイルには、次のような connectionStrings セクションが含まれています。
<connectionStrings>
<add name="MyConnectionName" providerName="System.Data.SqlClient" connectionString="Data Source=serverName;Initial Catalog=DBName;Integrated Security=True"/>
</connectionStrings>