您可以在运行时更改ConnectionString配置值吗?

Mat*_*lly 9 .net sql

是否可以在运行时更改app.config中的ConnectionString值?根据MSDN文档,它应该可以作为ConnectionString属性"获取或设置连接字符串".

我的代码看起来像这样:

ConnectionStringSettings mainConnection = ConfigurationManager.ConnectionStrings["mainConnection"];
mainConnection.ConnectionString = "Data Source=SERVER;Initial Catalog=" + NewDatabaseName + ";Integrated Security=True";
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:"未处理的异常:System.Configuration.ConfigurationErrorsException:配置是只读的."

Jon*_*onH 17

Configuration myConfiguration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); 
    myConfiguration.ConnectionStrings.ConnectionStrings("myDatabaseName").ConnectionString = txtConnectionString.Text; 
    myConfiguration.AppSettings.Settings.Item("myKey").Value = txtmyKey.Text; 
    myConfiguration.Save(); 
Run Code Online (Sandbox Code Playgroud)

参考:http://www.beansoftware.com/ASP.NET-Tutorials/Modify-Web.Config-Run-Time.aspx

  • +1:只是一个小的修改:如果你想重新阅读再次从配置文件中的新值,而不需要重新启动应用程序,刷新文件通过调用以下保存之后:*System.Configuration.ConfigurationManager.RefreshSection ( "的ConnectionStrings");* (6认同)
  • 虽然我在控制台应用程序中,但我必须使用不同的行:Configuration myConfiguration = ConfigurationManager.OpenExeConfiguration(exeFilePath); 请注意,这确实会更改物理配置文件. (5认同)