次のようなもの:
if(Request["connectionToUse"] + "" == "constr1")
// use a connection string 1
else
// use a connection string 2
.NETで可能ですか?
2 つの接続文字列を用意し、web.config
使用するものを参照するだけです。
<connectionStrings>
<add
name="conn1" connectionString="..."
providerName="System.Data.SqlClient"
/>
<add
name="conn2" connectionString="..."
providerName="System.Data.SqlClient"
/>
</connectionStrings>
if(Request["connectionToUse"] + "" == "constr1")
return ConfigurationManager.ConnectionStrings["conn1"];
else
return ConfigurationManager.ConnectionStrings["conn2"];
アップデート:
web.config
渡されたパラメーターに基づいて書き込むことはお勧めしません-これはセキュリティ上の問題を引き起こす可能性があるように見えるだけではありません (特に渡されたパラメーターを単に使用する場合)。
に変更を加えるとweb.config
、アプリケーションがリセットされ、アプリケーションのすべてのユーザーが削除されます。ファイルが変更されると、アプリケーション プールが再起動します。
編集: Oded が言ったように、これはおそらく非常に悪い考えですが、本当にしたい場合:
次の例を見て、リクエスト パラメータに基づいて webconfig を変更します。
string strDevConnection = @"Data Source=DEVELOPMENT\SQLEXPRESS;Initial Catalog=sqlDB;Persist Security Info=True;User ID= ;Password= ";
string strLiveConnection = @"Data Source=PRODUCTION\SQLEXPRESS;Initial Catalog=sqlDB;User id= ;password= ";
Configuration myWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
if (Request["connectionToUse"] + "" == "constr1")
{
myWebConfig.ConnectionStrings.ConnectionStrings["constr1"].ConnectionString = strDevConnection; //constr1 is the name of the current connectionstring in the web.config
}
else
{
myWebConfig.ConnectionStrings.ConnectionStrings["constr2"].ConnectionString = strLiveConnection;
}
myWebConfig.Save(); //Save the changes to web config