Database, dataset et listbox.datasource

RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 28 juil. 2008 à 10:09
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 28 juil. 2008 à 13:12
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"

2 réponses

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
28 juil. 2008 à 11:53
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..."
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
28 juil. 2008 à 13:12
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"
0
Rejoignez-nous