Problème ffichage Bdd MySql

cs_AngelDiablo Messages postés 22 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 11 mai 2009 - 5 mai 2009 à 11:22
cs_AngelDiablo Messages postés 22 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 11 mai 2009 - 5 mai 2009 à 14:52
Bonjour je debute en C# et je voudrai savoir pourquoi rien ne s'afiche dans ma combobox, donc voicimon code:

using

System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.Common;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Microsoft.Data;

using Microsoft.Data.Odbc;

namespace projet_Bts{

public
partial
class
Form1 :
Form{

public Form1(){

InitializeComponent();

}

private
void button2_Click(
object sender,
EventArgs e){

Application.Exit();}

private
void comboBox1_SelectedIndexChanged(
object sender,
EventArgs e){

string connStr =
"DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;UID=PDA;DATABASE=gestion;Password=0000";

OdbcConnection Conn =
new
OdbcConnection(connStr);

OdbcDataReader reader =
null;

try{

Conn.Open();

OdbcCommand command =
new
OdbcCommand(
"Select NumTable from table where 1");command.Connection = Conn;

reader = command.ExecuteReader();

int i;

while (reader.Read()){

for (i = 0; i < reader.FieldCount; i++){

comboBox1.Items.Add(

string.Format(
"{0}", reader[
"NumTable"]));}

}

}

catch (
Exception ex){

MessageBox.Show(ex.ToString());}

finally{

if (reader !=
null)reader.Close();

if (Conn.State ==
ConnectionState.Open)Conn.Close();

}

}

Merci a toute les personnes qui pourront m'aider

6 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
5 mai 2009 à 12:57
Salut

Première remarque : ta boucle for (i = 0; i < reader.FieldCount; i++)
ne sert à rien tout simplement car tu n'as qu'un seul champ (NumTable) que tu récupères avec ta requête.

Deuxième remarque : ta requête SQL comporte une erreur (bizarre que tu n'aies pas de message d'erreur dans ta messagebox).
"WHERE 1" ça n'est pas bon. Tu peux soit ne rien marquer (SELECT NumTable FROM Table) soit mettre une réelle condition comme "WHERE 1=1"

Dernière petite remarque, plutôt que de faire string.Format(
"{0}", reader[
"NumTable"])
, il suffit de faire reader["NumTable"].ToString(); ce qui va t'éviter l'appel à une fonction en plus.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
cs_AngelDiablo Messages postés 22 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 11 mai 2009
5 mai 2009 à 13:27
Salut


Krimog je te remercie pour ton aide, j'ai modifier ce que tu as dit, mais rien ne s'affiche, j'ai crée un bouton de test pour ma chaine de connexion elle fonctionne , mais apparamment lorsque j'utilise le combobox la connexion ne semble pas s'ouvrir.


Merci de l'aide que tu tente de m'apporter;
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
5 mai 2009 à 14:25
Es-tu bien sûr que ta table n'est pas tout simplement vide ?
Essaie ce genre de chose :

OdbcCommand c = new ObdcCommand("SELECT COUNT(NumTable) FROM table");
c.Connection = Conn;
MessageBox.Show(c.ExecuteScalar().ToString());

Si tu vois 0, c'est que ta table est vide. Il est donc normal que ta combo ne se remplisse pas.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
cs_AngelDiablo Messages postés 22 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 11 mai 2009
5 mai 2009 à 14:37
merci krimog
j'essaye et je te dit koi
0

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

Posez votre question
cs_AngelDiablo Messages postés 22 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 11 mai 2009
5 mai 2009 à 14:44
j'ai essayé et une erreur 42000 c'est produite apparement ce serai une erreur de syntaxe SQL
0
cs_AngelDiablo Messages postés 22 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 11 mai 2009
5 mai 2009 à 14:52
j'ai modifier comme cela:

private

void button3_Click(
object sender,
EventArgs e){

string connStr =
"DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;UID=PDA;DATABASE=gestion;Password=0000";

OdbcConnection Conn =
new
OdbcConnection(connStr);

try{

Conn.Open();

OdbcCommand c =
new
OdbcCommand(
"SELECT count(*) FROM `table` WHERE 1");c.Connection = Conn;

MessageBox.Show(c.ExecuteScalar().ToString());}

finally{

if (Conn.State ==
ConnectionState.Open)Conn.Close();

}

}

la requete me retourne 6
j'ai essayé avec le combobox toujours rien c'est bizarre!
Merci de ton aide Krimog
0
Rejoignez-nous