Вы можете изменить их так:
Properties.Settings.Default["MyConnectionString"] = newCnnStr;
Для полного решения, которое также сохраняет новое значение в файл, вам нужно сделать что-то вроде этого:
private static void ModifyConnectionStrings()
{
// Change the value in the config file first
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
const string newCnnStr = "server=(local);database=MyDb;user id=user;password=secret";
config.ConnectionStrings.ConnectionStrings["MyProject.Properties.Settings.MyConnectionString"].ConnectionString = newCnnStr;
config.Save(ConfigurationSaveMode.Modified, true);
// Now edit the in-memory values to match
Properties.Settings.Default["MyConnectionString"] = newCnnStr;
}
Если ваш набор данных находится в другой сборке, вы все равно можете сделать это, если вы сделаете настройки для этой сборки общедоступными. Для этого:
- Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Свойства
- Перейдите на вкладку Настройки .
- Измените Модификатор доступа на «Публичный», сохраните и закройте.
Затем вы можете сделать это (при условии, что другой проект называется «MyProject.DataLayer»):
private static void ModifyConnectionStrings()
{
// Change the value in the config file first
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
const string newCnnStr = "server=(local);database=MyDb;user id=user;password=secret";
config.ConnectionStrings.ConnectionStrings["MyProject.Properties.Settings.MyConnectionString"].ConnectionString = newCnnStr;
config.ConnectionStrings.ConnectionStrings["MyProject.DataLayer.Properties.Settings.MyConnectionString"].ConnectionString = newCnnStr;
config.Save(ConfigurationSaveMode.Modified, true);
// Now edit the in-memory values to match
Properties.Settings.Default["MyConnectionString"] = newCnnStr;
MyProject.DataLayer.Properties.Settings.Default["MyConnectionString"] = newCnnStr;
}