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

Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Dernière intervention
27 mai 2012
- - Dernière réponse : cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
- 23 mars 2011 à 10:34
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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
3
Merci
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

Merci cs_jopop 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_jopop
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
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
Commenter la réponse de cs_jopop
Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Dernière intervention
27 mai 2012
0
Merci
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
Commenter la réponse de AzevedoSt27
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
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.
Commenter la réponse de cs_jopop
Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Dernière intervention
27 mai 2012
0
Merci
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...
Commenter la réponse de AzevedoSt27
Messages postés
65
Date d'inscription
mercredi 10 novembre 2010
Dernière intervention
27 mai 2012
0
Merci
Merci

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.