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

Jaber_ Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
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
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Ah ! Je viens d'avoir ce message aussi :
Reading from the stream has failed
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
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
 
Augmente la durée du timer, c'est plus simple
0
Jaber_ Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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
 
Bizarre quand même
0