2016-12-03 4 views
1

J'essaie de définir connectionstring lors de l'exécution. Ce dont j'ai besoin est datasource à l'exécution et redémarrer l'application. J'ai trouvé quelques approches dans google, mais le problème est app.config le dos à la valeur par défaut après Application.Restart();
comment manipuler la chaîne de connexion dans le fichier app.config?

J'ai essayé à la fois, mais sauver connectionstring dans settings.cs et app.config il ne fonctionne pas pour moi. ceci est mon code:

public void setConnectionString() 
    { 
     try 
     { 
      string str = string.Empty; 

      str = string.Format(@"Data Source={0}; Initial Catalog=CRM01_DB; UID= {1}; PWD={2}", Default.DataSource, Default.UID, Default.UPass); 

      this["CRM01_DBConnectionString"] = str; 
      Default.Save(); 
      Thread.Sleep(100); 
      var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
      var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings"); 
      connectionStringsSection.ConnectionStrings["CRM01_DBConnectionString"].ConnectionString = str; 
      config.Save(); 
      ConfigurationManager.RefreshSection("connectionStrings"); 

      Thread.Sleep(100); 

     } 
     catch (System.Exception ex) 
     { 
      System.Windows.Forms.MessageBox.Show(ex.Message); 
     } 

Je n'ai pas eu d'erreurs, mais lorsque l'application démarre le connectionstrig a une valeur par défaut

Répondre

0

Si vous tester ce code de VS il pourrait ne pas fonctionner (et probablement pas).

Lors de l'exécution à partir de VS le programme réellement exécuté est <your_program>.vshost.exe et le fichier .config correspondant est nommé <your_program>.vshost.exe.config et vous devriez vérifier vos changements là.

Mais ..

VS garder le .config et .vshost.exe.config synchronisés pour que vous ne voyez pas d'origine vos modifications.

Pour tester si le code fonctionne essayer de l'extérieur VS ou décocher Enabled the Visual Studio hosting process (Properties ->Debug) (garder à l'esprit qu'il a implications)

enter image description here

+0

Merci, mais il ne fonctionne pas. –

+0

@mohammadboluki Je l'ai essayé. Fonctionne comme un charme –