Filtrer une table avec une valeur séléctionnée dans une listbox

Résolu
lirmo Messages postés 31 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 30 mars 2011 - 3 mars 2009 à 15:41
lirmo Messages postés 31 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 30 mars 2011 - 3 mars 2009 à 18:33
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

crougni Messages postés 18 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 3 mars 2009
3 mars 2009 à 17:23
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.@+
3
lirmo Messages postés 31 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 30 mars 2011
3 mars 2009 à 18:21
Oki merci. Je vais essayer tout ça.
0
lirmo Messages postés 31 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 30 mars 2011
3 mars 2009 à 18:33
Merci ça marche!!!! J'ai bloqué 4h alors qu'il fallait juste des simples cotes....
0
Rejoignez-nous