Filtrer une table avec une valeur séléctionnée dans une listbox [Résolu]

Signaler
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011
-
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011
-
Bonjour,
Je voudrais afficher dans une listbox toutes les valeurs contenu dans une base de donnée. Mais le problème c'est que je dois prendre l'information pour filtrer dans une autre listbox.
J'ai fais ce code:

 listBox2.Items.Clear();
            ouverture_base();            OleDbConnection BDAA new OleDbConnection(@"ProviderMicrosoft.ACE.OLEDB.12.0;
                    Data Source=" + adr + " ; Persist Security Info=false");
            BDAA.Open();
                        OleDbDataAdapter prod new OleDbDataAdapter("SELECT Produit.FR, Categorie.FR FROM Categorie INNER JOIN Produit ON Categorie.N° Produit.Categorie WHERE (((Categorie.FR)="+lstbxCate.SelectedItem.ToString()+"))", BDAA);
            DataSet Dset = new DataSet();
            prod.Fill(Dset, "Produit");
            DataTable table = Dset.Tables["produit"];
           

            for (int i = 0; i < table.Rows.Count; i++)
            {
                System.Data.DataRow ligne = table.Rows[i];
                if (ligne.IsNull(0) == false) listBox2.Items.Add(ligne[0].ToString()); ;

            }

Mais ça ne marche pas
Est-ce que quelqu'un pourrait m'aider?
SVP!

3 réponses

Messages postés
18
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
3 mars 2009

Salut ;)

il te manque peu être deux ' sur ta clause Where de ta requete...

genre :

.... WHERE Categorie.FR= '
"+lstbxCate.SelectedItem.ToString()+"'
" ...

Ensuite, ta requête serait plus clair si tu utilise la classe OleDBCommand et OleDBParameter  pour gerer tes conditions.

Je pense que tu peu également supprimer Categorie.FR du résultat de ta requète vue qu'il sera forcement égale à ta condition.

et pour finir , çà me parait un peu lourd de créer un DataSet, puis un DataTable et un Datarow etc....

L'utilisation ( dans ton cas ) d'un OleDbDataReader serait plus simple je pense : => http://msdn.microsoft.com/fr-fr/library/system.data.oledb.oledbdatareader(VS.80).aspx

Voilou.@+
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

Oki merci. Je vais essayer tout ça.
Messages postés
31
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
30 mars 2011

Merci ça marche!!!! J'ai bloqué 4h alors qu'il fallait juste des simples cotes....