Bonjour,

J'ai une combobox dans un formulaire de connection qui me permet de sélectionner la base de donnée de travail. Il y a environ une cinquantaine de tables contenues dans un Dataset et par conséquent autant de tableadapter.

En fonction de la sélection dans la combobox je défini des variables String pour les Server, Base, User et Mot de passe pour construire la chaîne de connection
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Sub SetConnection(Cle As String, Server As String, Base As String, User As String, Mdp As String)
Dim MaCon As New MesConnections
Dim ConStr As String = MaCon.ConnBuilder(Frm, Server, Base, User, Mdp)
 
       Public Function ConnBuilder(Server As String, Base As String, User As String, Mdp As String)
       Dim ConBuild As New SqlConnectionStringBuilder With {
                .DataSource = Server,
                .InitialCatalog = Base,
                .UserID = User
            }
            If Mdp <> "" Then
                ConBuild.Password = Mdp
            End If
            Return ConBuild.ConnectionString
Que je test ensuite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
If MaCon.Test_Connexion(Frm, ConStr) = True Then
       Public Function Test_Connexion(Frm As Forms.MetroForm, StrCon As String)
       Dim Con As New SqlConnection(StrCon)
            Con.Open()
            If Con.State = ConnectionState.Open Then
                Con.Close()
                Return True
            End If
            Return False
       End Function
Puis je mets à jour MonAppli.exe.config
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
If MaCon.Test_Connexion(Frm, ConStr) = True Then
                Dim Config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
                Config.ConnectionStrings.ConnectionStrings(Cle).ConnectionString = ConStr
                Config.ConnectionStrings.ConnectionStrings(Cle).ProviderName = "System.Data.SqlClient"
                Config.Save(ConfigurationSaveMode.Modified)
Jusque là, tout va bien, le fichier se met à jour correctement. Je ferme mon application, je la relance et je peux travailler avec la bonne base de donnée.
C'est donc là le problème. Pour pouvoir travailler, il faut fermer et relancer l'application pour prise en compte des changements. Je souhaiterais savoir comment faire pour recharger la section connectionString. Après d'assez longues recherches, j'ai essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ConfigurationManager.RefreshSection("connectionStrings")
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ConfigurationManager.RefreshSection("appSettings")
Mais rien n'y fait.
Si quelqu'un pouvait me mettre sur la voie, ce serait bien apprécié..

Merci d'avance