我正在尝试使用C#代码在web.config中动态设置连接字符串:
ConfigurationManager.ConnectionStrings["ServerConnection"].ConnectionString = "blah";
但它不允许我这样做并抛出以下错误:
The configuration is read only.
注意:如果可能的话,我不想实际保存到web.config。只需在内存中动态设置它。
答案 0 :(得分:1)
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["ServerConnection"].ConnectionString = "Data Source=...";
configuration.Save();
如果您不想更改实际的web.config,则可以使用;
using(OleDbConnection conn = new OleDbConnection("Type here your connection string"))
{
// Execute my code
}
如果您想保留一些数据然后进行更改,您可以将连接字符串的值复制到另一个字符串。
string myNewConnectionString = ConfigurationManager.ConnectionStrings["ServerConnection"].ConnectionString;
myNewConnectionString.Replace("Data Source=Development", "Data Source=Production");
答案 1 :(得分:0)
如果我错了,请纠正我,但我很确定ConfigurationManager配置是只读的。您可以通过更改web.config
的{{1}}来更改设置。
这并不意味着动态设置。