2008-11-24 4 views
1

Я знаю, что есть some similar issue.Изменить ConnectionString в VS2005 (C#)

Но, все же вопрос не отвечает! Мне нужно изменить строка подключения не добавляет новую.

+0

Пожалуйста, будьте более конкретным. Можете ли вы объяснить, почему вы хотите изменить строку? – StingyJack 2008-11-24 12:50:02

+0

Ну, представьте себе этот случай. У вас есть одно бизнес-приложение, которое поддерживает несколько компаний, каждая компания имеет другую базу данных, поэтому при входе пользователя в систему он должен сначала выбрать БД. Вот почему мне нужно изменить файл DB. – 2008-11-24 15:11:51

ответ

6

Это поможет вам!

 /// <summary> 
     /// Add a connection string to the connection 
     /// strings section and store it in the 
     /// configuration file. 
     /// </summary> 
     /// <param name="csName">The name of the property.</param> 
     /// <param name="connectionString">The connectionstring as specified.</param> 
     public static void AddConnectionStrings(string csName, string connectionString) 
     { 

      // Get the configuration file. 
      System.Configuration.Configuration config = 
       ConfigurationManager.OpenExeConfiguration(
       ConfigurationUserLevel.None); 

      // Add the connection string. 
      ConnectionStringsSection csSection = config.ConnectionStrings; 
      csSection.ConnectionStrings.Add(
       new ConnectionStringSettings(csName, 
        connectionString, "System.Data.SqlClient")); 

      // Save the configuration file. 
      config.Save(ConfigurationSaveMode.Full);  
     } 

Ну для обновления было трудно найти какой-либо полезный код для обновления в ConnectionString. Не удалось установить , чтобы обновить строку соединения, поэтому я удалил строку подключения и добавлю новую. Ну разве это не странно? Microsoft оставила что-то отменить ... Ну, может быть, это не полезно , чтобы изменить ваш app.config, но я все равно должен был это сделать. Так что динамические файлы app.config или web.config немного странны, потому что вы не можете динамически обновлять его. Нет, вам нужно сначала удалить его с помощью диспетчера конфигурации.

 /// <summary> 
     /// First remove the old connectionstring and after that 
     /// add a connection string to the connectionstrings 
     /// section and store it in the configuration file. 
     /// </summary> 
     /// <param name="csName">The name of the property.</param> 
     /// <param name="connectionString">The connectionstring as specified.</param> 
     public static void UpdateConnectionStrings(string csName, string connectionString) 
     { 
      // Get the configuration file 
      System.Configuration.Configuration config = 
       ConfigurationManager.OpenExeConfiguration(
       ConfigurationUserLevel.None); 

      // Remove the existing connectionstring. 
      config.ConnectionStrings.ConnectionStrings.Remove(csName); 
      // Add the connectionstring 
      ConnectionStringsSection csSection = config.ConnectionStrings; 
      csSection.ConnectionStrings.Add(
       new ConnectionStringSettings(csName, 
       connectionString, "System.Data.SqlClient")); 

      // Save the configuration file 
      config.Save(ConfigurationSaveMode.Full); 
     } 
0

Это старый вопрос, и я хотел бы просто знать, какое решение в конечном итоге выработало для вас. Если вы еще не решили, this question пытается ответить на него.

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