2013-11-30 6 views
1

Привет, Я разрабатываю приложение для этого. Я беру строку соединения динамически из пользователя при первом запуске.Перезаписать строку соединения, хранящуюся в app.config, в C# winforms

Мой app.config является

<connectionStrings> 
<add name="DConnection" connectionString="" 
    providerName="MySql.Data.MySqlClient"/> 
<add name="SConnection" connectionString="" 
    providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Я задаю строку подключения, чтобы app.config атрибуты, используя ниже методов

private void CheckingSource(string constr) 
    { 
     var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     config.ConnectionStrings.ConnectionStrings["SConnection"].ConnectionString = constr; //CONCATINATE YOUR FIELDS TOGETHER HERE 
     config.Save(ConfigurationSaveMode.Modified, true); 
     ConfigurationManager.RefreshSection("connectionStrings"); 
    } 

private void CheckingDestination(string constr) 
    { 
     var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     config.ConnectionStrings.ConnectionStrings["DConnection"].ConnectionString = constr; //CONCATINATE YOUR FIELDS TOGETHER HERE 
     config.Save(ConfigurationSaveMode.Modified, true); 
     ConfigurationManager.RefreshSection("connectionStrings"); 
    } 

Теперь я должен написать эту строку подключения к app.config так когда пользователь запускает приложение в следующий раз, эти обновленные строки подключения должны использоваться.

Как мы можем управлять им? Я не имею ни малейшего представления, так как я все еще свежее к app.config и его использование.

ответ

4

Теперь я должен написать эту строку подключения в app.config, поэтому, когда пользователь запускает приложение в следующий раз, эти обновленные строки подключения должны использоваться.

Вы не должны делать это, файл app.config может быть развернут где-то, как C:\Program Files\Your Application, который не записываемый обычными пользователями.

Вместо этого поставьте соединительную строку на все, что ей нужно, иначе, чем с помощью ConfigurationManager.ConnectionStrings.

using (var connection = new SqlConnection(GetConnectionStringFromUser())) { ... 

С конкретными относительно «экономии» строку подключения, вы должны смотреть на какой-то механизм сохранения, как .NET-х Application Settings.

Архитектура параметров приложения поддерживает определение строго типизированных параметров с областью приложения или пользователя и сохранение настроек между сеансами приложений.

1

Благодаря @ ta.speot.is разрешил проблему, используя настройку приложения.

Ссылка ссылки. Application Setting

может быть полезно всем нуждающимся. Cheers .. :)

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