La déconnexion à la base de données plante

Fermé
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016 - 21 juil. 2016 à 14:57
 Utilisateur anonyme - 21 juil. 2016 à 19:56
Bonjour cher tous !

Lorsque je charge mon formulaire, j'ai un timer de test (1000) pour savoir si je suis toujours connecté à la base de données ou pas.
Si j'exécute le formulaire et que la base de données est connectée, tout fonctionne impect, mais si je déconnecte, l'appli plante, puis sans quitter, si je reconnecte, tout rentre dans l'ordre...

Voici mon code, et je sollicite votre aide afin de "tuer" le processus ou autre propositions afin de remédier à ce soucis :
string connetionString = null;
            MySqlConnection cnn;
            connetionString = "SERVER=localhost; DATABASE=dbase; UID=root; PWD=;";
            cnn = new MySqlConnection(connetionString);

            try
            {
                cnn.Open();
                LBL_Conexion.Text = "Connexion à la base de données réussie !";
                cnn.Close();
            }
            catch (Exception ex)
            {
                LBL_Conexion.Text = ex.Message;
                cnn.Close();

}


Merci de votre aide,
Jaber_

4 réponses

Utilisateur anonyme
21 juil. 2016 à 16:23
Bonjour,

que t'affiche LBL_Conexion?


En aparté:
string connetionString = null; 
ici = null ne sert à rien, car tant que tu n'as rien affecté à une variable de type référence elle vaut null.

Par contre tu peux faire
string connetionString ="SERVER=localhost; DATABASE=dbase; UID=root; PWD=;";

0
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016
21 juil. 2016 à 16:49
Le LBL_Connexion me donne
Unable to connect to any of the specified MySQL hosts.


Le message est correct. Mais je ne peux même pas fermer la fenêtre vu qu'il plante :s

Si je met le code dans le Load tout va bien, mais étant donné que le Timer boucle, il plante sauf si la base est connectée.
0
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016
21 juil. 2016 à 17:04
Ah ! Je viens d'avoir ce message aussi :
Reading from the stream has failed
0
Utilisateur anonyme
21 juil. 2016 à 18:36
Je n'utilise pas les bases de données, donc pas bien sûr de pouvoir t'aider.

Mais
                cnn.Open();//je me connecte
                LBL_Conexion.Text = "Connexion à la base de données réussie !";
                cnn.Close();//je me déconnecte

dans un timer ça finit peut être par se mordre la queue.
T'as vraiment besoin de connecter/deconnecter dans la foulée?
0
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016
21 juil. 2016 à 18:45
Je crois que ça bug un petit peux mais c'est 100 fois mieux que le début :
private void timer1_Tick(object sender, EventArgs e)
        {
            string connetionString = "SERVER=localhost; DATABASE=dbase; UID=root; PWD=;";
            MySqlConnection cnn;
            cnn = new MySqlConnection(connetionString);

            try
            {
                cnn.Open();
                LBL_Conexion.ForeColor = Color.Blue; LBL_Conexion.Text = "Connexion à la base de données réussie !";
                cnn.Close();                
            }
            catch (Exception ex)
            {
                timer1.Stop();
                LBL_Conexion.ForeColor = Color.Red; LBL_Conexion.Text = ex.Message;
                cnn.Close();
                timer1.Start();
            }            
        }

J'ai ajouté timer1.Stop(); puis timer1.Start(); pour qu'il fasse sa "pause".
Le blocage est toujours présent mais supportable.

En tout cas merci à toi de t'être encore une fois occupé de moi.
Je débute grave et je ne te remercierai pas assez.
0
Utilisateur anonyme
21 juil. 2016 à 19:35
Augmente la durée du timer, c'est plus simple
0
Jaber_ Messages postés 23 Date d'inscription dimanche 17 juillet 2016 Statut Membre Dernière intervention 23 novembre 2016
Modifié par Jaber_ le 21/07/2016 à 19:42
J'avais déjà testé ça plante toujours...
Une fois qu'il détecte qu'il n'est plus connecté, il plante jusqu'à restauration de la connexion et tout se remet en ordre :s
0
Utilisateur anonyme
21 juil. 2016 à 19:56
Bizarre quand même
0