Bonjour !
J'ai implémenté pour mon application un Singleton de connexion à la base de données. Il fonctionnait apparemment bien, mais récemment je me suis aperçu qu'il produisait des erreurs. En gros, lorsque l'on clique sur un lien et que, pendant le chargement de la page, on clique sur un autre lien, j'ai parfois (pas systématiquement donc) une erreur qui me dit que, en gros, il y a déjà un DataReader d'ouvert et qu'il faut le fermer avant d'en ouvrir un autre.
J'ai juste suivi les différents tutos qui expliquent comment faire un Singleton en C#, mon code n'a rien de spécial. J'ai juste ajouté deux fonction statiques pour gérer l'ouverture et la fermeture de la connexion.
Je suppose donc que ma fonction Close ne ferme pas systématiquement le Datareader ouvert (vu qu'il ne peut y en avoir qu'un seul par objet sqlconnection), mais je ne vois pas vraiment comment régler le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //Ferme la connexion private static void CloseConnexion() { if (GetInstance().SqlConnection.State != ConnectionState.Closed) GetInstance().SqlConnection.Close(); } //Ouvre la connexion private static void OpenConnexion() { CloseConnexion(); GetInstance().SqlConnection.Open(); }
Si quelqu'un a une idée...
Merci !![]()
Partager