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
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
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
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é
ConfigurationManager.RefreshSection("connectionStrings")
puis
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
Partager