像这样的东西:
if(Request["connectionToUse"] + "" == "constr1")
// use a connection string 1
else
// use a connection string 2
.NET 上可行吗?
在您的中有两个连接字符串,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