某些事情如:
if(Request["connectionToUse"] + "" == "constr1")
// use a connection string 1
else
// use a connection string 2
是否可以在.NET上使用?
答案 0 :(得分: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
的任何更改都将重置应用程序,导致其所有用户都丢失 - 应用程序池会在文件更改时重新启动。
答案 1 :(得分:1)
根据请求参数修改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