Probleme de connexion a ma base de donnée [Résolu]

Signaler
Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Statut
Membre
Dernière intervention
27 mai 2012
-
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
-
Bonjour,

Mon problème est le suivant, j'arrive a me connecter a ma base de donnée mais arriver a ma boucle while le programme passe par dessus et je ne sais pas pourquoi!?!?

je veux juste récuperer les noms dans ma base de donnée.

voici le code:

            string strConnexion = "SERVER=localhost;" +"DATABASE=bdd_etiquettes;" +"UID=root;" + "PASSWORD=;";

            MySqlConnection connexion = new MySqlConnection(strConnexion);

            MySqlCommand requette = connexion.CreateCommand();

            requette.CommandText = "Select * from tbl_classes";

            try
            {
                connexion.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            MySqlDataReader lire = requette.ExecuteReader();

            while (lire.Read())
            {
                string strRow = "";
                for (int i = 0; i < lire.FieldCount; i++)
                strRow += lire.GetValue(i).ToString() + ",";
                cbClasses.Items.Add(strRow);
            }
            connexion.Close();


Merci de votre aide

Stephane Azevedo

7 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
Un FieldCount à 3 signifie que tu as 3 colonnes, mais pas nécessairement des lignes.
Simplement ta requête ne renvoie aucune ligne, ta table tbl_classes est vide sur la base à laquelle tu te connectes ;)

Lance le shell MySQL sur cette database et teste ta requête, je suis pratiquement sûr de moi.

NB : le lire.Close() c'est pour être propre, mais ça ne corrigera pas ton pb
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
Salut,

as-tu débuggé ton code ? es-tu sûr que ta connexion est bien ouverte ?
es-tu sûr de ta requête ? l'as-tu essayée sur un client MySQL ?
tu ne passes pas du tout dans le while, ou une exception est levée ?

NB : un DataReader se Close() aussi
: dans ton catch() tu devrais peut-être quitter ta fonction
Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Statut
Membre
Dernière intervention
27 mai 2012

Salut Jopop :)

Oui je les fais! Il ce connecte bien a la base de donnée et lance la requette mais arriver a la boucle while il passe directement a la fermeture de la connexion!

Merci de m'aider
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
Re,

J'ai testé ton code (en changeant la cnxString et la requête, et aussi avec un lire.Close() ^^) et tout fonctionne bien. Petit topo :
- si ta cnxString est erronée tu auras une exception,
- si ta requête est fausse tu auras une exception.
La seule manière que ton code "roule" mais squizz le while c'est que ta requête ne renvoie aucune valeur. Mais si tu dis que t'as testé CETTE requête sur CETTE base de données, alors je vois pas.
Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Statut
Membre
Dernière intervention
27 mai 2012

Yep,

Ma connexion est fonctionne car j'ai changer les nom de la bdd en y ajoutant une faute et il passe directement dans le catch! pour la requette elle fonctionne correctement car en mode debug en regardant dans lire fieldCount est a 3! alors je ne comprend vraiment pas pourquoi il ne passe pas dans le while! j'ai ajouter le lire.Close(); mais toujour pas...
Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Statut
Membre
Dernière intervention
27 mai 2012

Merci

s'etais sa ma table etais vide -_-°
désoler de t'avoir fais perdre du temps!
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
Aucun souci, souvent les bugs les plus bêtes sont les plus durs à trouver ;)