Probleme de connexion a ma base de donnée

Résolu
AzevedoSt27 Messages postés 65 Date d'inscription mercredi 10 novembre 2010 Statut Membre Dernière intervention 27 mai 2012 - 22 mars 2011 à 15:02
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre 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

7 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
23 mars 2011 à 10:14
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
3
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
22 mars 2011 à 15:16
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
0
AzevedoSt27 Messages postés 65 Date d'inscription mercredi 10 novembre 2010 Statut Membre Dernière intervention 27 mai 2012
23 mars 2011 à 08:26
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
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
23 mars 2011 à 09:41
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AzevedoSt27 Messages postés 65 Date d'inscription mercredi 10 novembre 2010 Statut Membre Dernière intervention 27 mai 2012
23 mars 2011 à 09:53
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...
0
AzevedoSt27 Messages postés 65 Date d'inscription mercredi 10 novembre 2010 Statut Membre Dernière intervention 27 mai 2012
23 mars 2011 à 10:30
Merci

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