我正在尝试在 C# 代码中的 web.config 中动态设置连接字符串:
ConfigurationManager.ConnectionStrings["ServerConnection"].ConnectionString = "blah";
但它不允许我这样做并抛出以下错误:
The configuration is read only.
注意:如果可能,我不想实际保存到 web.config。只需在内存中动态设置它。
我正在尝试在 C# 代码中的 web.config 中动态设置连接字符串:
ConfigurationManager.ConnectionStrings["ServerConnection"].ConnectionString = "blah";
但它不允许我这样做并抛出以下错误:
The configuration is read only.
注意:如果可能,我不想实际保存到 web.config。只需在内存中动态设置它。
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");
如果我错了,请纠正我,但我很确定 ConfigurationManager 配置是只读的。您可以通过更改web.config
for来更改设置app.config
。
它并不意味着动态设置。