2013-05-04 3 views
1

Я хочу изменить строку соединения во время выполнения в app.configне изменится app.config

Код я написал следующим образом:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
ConnectionStringsSection connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings"); 
connectionStringsSection.ConnectionStrings["test"].ConnectionString = "sadasd"; 
//config.ConnectionStrings.SectionInformation.ForceSave = true; 
config.Save(); 
ConfigurationManager.RefreshSection("connectionStrings"); 

но App.config не изменится!

ответ

0

Вы можете попробовать этот метод, используемый мной и работал для меня на WinForms и MySQL проекта:

private void EditConString(string connName, string user, string pwd, string server,string database) 
     { 
      var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
      var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings"); 
      connectionStringsSection.ConnectionStrings[connName].ConnectionString = "Server=" + server + ";User Id=" + user + ";password=" + pwd + ";database=" + database + ";ConnectionTimeout = 60;Allow Zero Datetime=True"; 
      config.Save(); 
      ConfigurationManager.RefreshSection("connectionStrings"); 
     } 

Удачи!

Смежные вопросы