2008-11-24 6 views
1

Je sais qu'il y a some similar issue.Modifier ConnectionString dans VS2005 (C#)

Mais, toujours la question n'a pas de réponse! Je dois modifier la chaîne de connexion pas ajouter un nouveau.

+0

Veuillez être plus précis. Pouvez-vous expliquer pourquoi vous voulez changer la chaîne? – StingyJack

+0

Eh bien, imaginez ce cas. Vous avez une application d'affaires qui prend en charge plusieurs entreprises, chaque entreprise a une base de données différente, donc, lorsque l'utilisateur se connecte au système, il/elle doit d'abord sélectionner la base de données. C'est pourquoi j'ai besoin de changer le fichier DB. –

+0

De même, si votre application est une base client et que vous vous connectez à votre application serveur résidant sur un serveur, vous devez modifier la chaîne de connexion lors de l'exécution pour vous connecter à l'application serveur –

Répondre

6

Cela va vous aider!

 /// <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);  
     } 

Eh bien pour la mise à jour, il était difficile de trouver un code mettre à jour USEFULL un connectionstring. Il n'était pas possible de mettre à jour une chaîne de connexion, donc j'ai dû supprimer la chaîne de connexion et en ajouter une nouvelle. Eh bien, n'est-ce pas étrange? Microsoft a oublié quelque chose ... Bon peut-être que ce n'est pas utile pour changer votre app.config, mais bon, je devais le faire de toute façon. Les fichiers app.config ou web.config dynamiques sont un peu étranges, car vous ne pouvez pas les mettre à jour dynamiquement. Non, vous devez d'abord le supprimer par le gestionnaire de configuration.

 /// <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

Excellent bit de code. –

0

Ceci est une question ancienne, et je voudrais juste savoir quelle solution a finalement fonctionné pour vous. Si vous ne l'avez pas encore résolu, this question tente d'y répondre.

Questions connexes