SqlConnection と SqlCEConnection はどちらも System.Data.Common.DbConnection を拡張するため、"blah" を DbConnection として宣言すると、同じメソッドとプロパティを使用できるようになります。
正しい接続タイプを実際に作成するには、System.Data.Common.DbProviderFactories クラスと System.Data.Common.DbProviderFactory クラスを使用します。例えば:
DbProviderFactory providerFactory = DbProviderFactories.GetFactory("The Provider Name");
using (DbConnection connection = providerFactory.CreateConnection())
{
connection.ConnectionString = "The Connection String";
connection.Open();
// Use the "connection" object here
}
「プロバイダー名」には、データベースの種類に応じて「System.Data.SqlClient」または「System.Data.SqlServerCe」を入力します。次に、「接続文字列」については、プロバイダーの種類に応じた正しい接続文字列を入力します。
編集:この手法は、App.config ファイルと System.Configuration.ConfigurationManager クラスでうまく機能します。たとえば、App.config ファイルが次のようになっているとします。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="TheConnectionString" providerName="System.Data.SqlClient" connectionString="Blah Blah Blah" />
</connectionStrings>
</configuration>
次に、次のようにこれらの構成設定にアクセスできます。
DbProviderFactory providerFactory = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["TheConnectionString"].ProviderName);
using (DbConnection connection = providerFactory.CreateConnection())
{
connection.ConnectionString = ConfigurationManager.ConnectionStrings["TheConnectionString"].ConnectionString;
connection.Open();
// Use the "connection" object here
}