Database, dataset et listbox.datasource

Signaler
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016
-
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016
-
Bonjour,

mon problème est surement très simple à résoudre mais voilà, au lieu de tatoner sans savoir où je vais je préfère poser la question ici. Je n'arrive pas a afficher le résultat d'une requête dans un listbox en utilisant listbox.datasource.
Grosso modo, voilà où j'en suis :
j'ai une DB odbc, je fais une requête sur une table OverlayNames, qui contient parmis d'autres les champs OverlayIndex (liste d'index numérique) et OverlayName (liste de string). Je rempli un dataSet avec les 2, que je lie à la propriété DataSource d'une ListBox. Mon problème est que je n'arraive pas à paramétré DisplayMember et ValueMember (si encore, ce dernier doit être utilisé) pour simplement afficher la liste des noms des Overlays (champ OverlayName1 de la table).

private System.Windows.Forms.ListBox lbMaps;

OdbcDataAdapter adptMaps= new OdbcDataAdapter("SELECT OverlayIndex,OverlayName1 FROM  OverlayNames",DB.connection);
adptMaps.Fill(data,"Overlays");
lbMaps.DataSource=data.Tables["Overlays"];
lbMaps.DisplayMember= ???????????????????????? ;
lbMaps.ValueMember =?????????????????????????;

Je n'obtient que des "System.data.DataRowView" dans mon listbox, autant qu'il y a de ligne dans ma table. Et si quelqu'un peut un peu me préciser la structure du dataset après avoir fait le Fill, genre, le nom des tables crée par défault, puisque dans ma requêtes il y a deux tables, il doit bien y avoir deux tables aussi dans le dataset, mais comment s'appelle-t-elles ?

Merci, je galère un peu j'avoue

RV

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
A voir également:

2 réponses

Messages postés
1182
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
14
lbMaps.DisplayMember="OverlayName1";
lbMaps.ValueMember="OverlayIndex";

le nom des tables tu les defini grace a ton fill ==> adptMaps.Fill(data,"Overlays");
ta table s'appelle donc overlays dans un dataset nomee data
et dans le select que tu nous montre il n'y a qu'une table et 2 champs
dans la table overlays tu aura les 2 colonne OverlayIndex et OverlayName1

<hr />Arthenius
"Ce qui ne me tue pas, me rend plus fort..."
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016

J'ai essayé ta solution et il me met une erreur car il n'a pas trouvé la liaison entre displayMember et Valuemember (au vu de ce qu'il me dit). Et quand j'enlève la deuxième ligne, soit lbMaps.ValueMember="OverlayIndex";  il y a une seule ligne qui s'affiche dans ma listbox: "System.data.DataViewManagerListItemTypeDescription"

...

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"