Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Combox / listbox / sql [VB .Net / 2.0]

6 réponses
Avatar
Fino
Bonjour,

J'ai une combo box qui est rempli en utilisant un dataset/bindingsource
/tableadapter et je voudrais qu'une listbox se remplisse en choisissant
l'information contenu dans la combox box.

Donc j'ai une procédure stocké avec un @parametre mais je n'arrive pas à
récupérer la valeur de ma combox pour exécuter ma requete avec ce paramètre
et remplir ma list box !

Peut on passer le paramètre automatiquement dans un des objets utilisés ou
faut il passer par du code ?

Merci

6 réponses

Avatar
JFGerard
Bonjour

Sauf erreur, si tu remplis ta combo avec un DS/BS/AD, tu dois avoir
parametre les proprietes Datasource (pour viser la BS) et DisplayMember (pour
presenter la colonne de la table) de la CB.

Sur un evenement de type click de la CB, tu recuperes dans le SelectedItem
un objet de type System.data.datarowview (attention il peut etre nothing)
qu'il faut lire en tant que tel dans un objet :
dim xRow as System.data.datarowview
xrow = MaCB.selectedItem
et tu accedes a tous les elements de la ligne de donnees par
MonElementDeMaColonne = xrowview.item("LeNomDeMaColonne") (attention au cast)

et tu peux envoyer ca comme parametre de la requete qui controle ta listbox

et si tu utilises en plus la propriete ValueMember, elle stocke le nom de la
colonne (que tu peux parametrer) qui te sert a recuperer le parametre dans la
colonne qui t'interesse. Comme cela, tu evites une variable globale entre la
procedure qui remplit la CB (moi, je fais toujours un fill au dernier moment)
et la(les) procedure(s) d'evenements.

en CompactFwk, je n'ai pas reussi a condenser en une ligne du type
Attention : j'ai tape ce texte a la volee il y a peut-etre des erreurs de
frappe. si souci, j'ai du vrai code testé et approuve, mais ca doit a peu
pres marcher !!
MonElementDeMaColonne = MaCB.selectedItem.item("LeNomDeMaColonne")
mais ce doit etre une limitation du CFwk (et de toute facon le faire en 2
lignes permet de debugger plus facilement !!).
Si qlq'un a une idee, a suivre.

Salut
JF


"Fino" a écrit :

Bonjour,

J'ai une combo box qui est rempli en utilisant un dataset/bindingsource
/tableadapter et je voudrais qu'une listbox se remplisse en choisissant
l'information contenu dans la combox box.

Donc j'ai une procédure stocké avec un @parametre mais je n'arrive pas à
récupérer la valeur de ma combox pour exécuter ma requete avec ce paramètre
et remplir ma list box !

Peut on passer le paramètre automatiquement dans un des objets utilisés ou
faut il passer par du code ?

Merci





Avatar
Fino
Merci de ta réponse.

J'ai trouvé mon erreur il me fallait créer ma propre méthode Fill afin d'y
passer les paramètres en utlisant les nouveaux composants et du coup en une
ligne tout ce fait !


"JFGerard" a écrit dans le message de
news:
Bonjour

Sauf erreur, si tu remplis ta combo avec un DS/BS/AD, tu dois avoir
parametre les proprietes Datasource (pour viser la BS) et DisplayMember
(pour
presenter la colonne de la table) de la CB.

Sur un evenement de type click de la CB, tu recuperes dans le SelectedItem
un objet de type System.data.datarowview (attention il peut etre nothing)
qu'il faut lire en tant que tel dans un objet :
dim xRow as System.data.datarowview
xrow = MaCB.selectedItem
et tu accedes a tous les elements de la ligne de donnees par
MonElementDeMaColonne = xrowview.item("LeNomDeMaColonne") (attention au
cast)

et tu peux envoyer ca comme parametre de la requete qui controle ta
listbox

et si tu utilises en plus la propriete ValueMember, elle stocke le nom de
la
colonne (que tu peux parametrer) qui te sert a recuperer le parametre dans
la
colonne qui t'interesse. Comme cela, tu evites une variable globale entre
la
procedure qui remplit la CB (moi, je fais toujours un fill au dernier
moment)
et la(les) procedure(s) d'evenements.

en CompactFwk, je n'ai pas reussi a condenser en une ligne du type
Attention : j'ai tape ce texte a la volee il y a peut-etre des erreurs de
frappe. si souci, j'ai du vrai code testé et approuve, mais ca doit a peu
pres marcher !!
MonElementDeMaColonne = MaCB.selectedItem.item("LeNomDeMaColonne")
mais ce doit etre une limitation du CFwk (et de toute facon le faire en 2
lignes permet de debugger plus facilement !!).
Si qlq'un a une idee, a suivre.

Salut
JF


"Fino" a écrit :

Bonjour,

J'ai une combo box qui est rempli en utilisant un dataset/bindingsource
/tableadapter et je voudrais qu'une listbox se remplisse en choisissant
l'information contenu dans la combox box.

Donc j'ai une procédure stocké avec un @parametre mais je n'arrive pas à
récupérer la valeur de ma combox pour exécuter ma requete avec ce
paramètre
et remplir ma list box !

Peut on passer le paramètre automatiquement dans un des objets utilisés
ou
faut il passer par du code ?

Merci







Avatar
JFGerard
Et ca donne quoi au niveau du code, si ce n'est pas indiscret ?

Cordialement

JF

"Fino" a écrit :

Merci de ta réponse.

J'ai trouvé mon erreur il me fallait créer ma propre méthode Fill afin d'y
passer les paramètres en utlisant les nouveaux composants et du coup en une
ligne tout ce fait !


"JFGerard" a écrit dans le message de
news:
> Bonjour
>
> Sauf erreur, si tu remplis ta combo avec un DS/BS/AD, tu dois avoir
> parametre les proprietes Datasource (pour viser la BS) et DisplayMember
> (pour
> presenter la colonne de la table) de la CB.
>
> Sur un evenement de type click de la CB, tu recuperes dans le SelectedItem
> un objet de type System.data.datarowview (attention il peut etre nothing)
> qu'il faut lire en tant que tel dans un objet :
> dim xRow as System.data.datarowview
> xrow = MaCB.selectedItem
> et tu accedes a tous les elements de la ligne de donnees par
> MonElementDeMaColonne = xrowview.item("LeNomDeMaColonne") (attention au
> cast)
>
> et tu peux envoyer ca comme parametre de la requete qui controle ta
> listbox
>
> et si tu utilises en plus la propriete ValueMember, elle stocke le nom de
> la
> colonne (que tu peux parametrer) qui te sert a recuperer le parametre dans
> la
> colonne qui t'interesse. Comme cela, tu evites une variable globale entre
> la
> procedure qui remplit la CB (moi, je fais toujours un fill au dernier
> moment)
> et la(les) procedure(s) d'evenements.
>
> en CompactFwk, je n'ai pas reussi a condenser en une ligne du type
> Attention : j'ai tape ce texte a la volee il y a peut-etre des erreurs de
> frappe. si souci, j'ai du vrai code testé et approuve, mais ca doit a peu
> pres marcher !!
> MonElementDeMaColonne = MaCB.selectedItem.item("LeNomDeMaColonne")
> mais ce doit etre une limitation du CFwk (et de toute facon le faire en 2
> lignes permet de debugger plus facilement !!).
> Si qlq'un a une idee, a suivre.
>
> Salut
> JF
>
>
> "Fino" a écrit :
>
>> Bonjour,
>>
>> J'ai une combo box qui est rempli en utilisant un dataset/bindingsource
>> /tableadapter et je voudrais qu'une listbox se remplisse en choisissant
>> l'information contenu dans la combox box.
>>
>> Donc j'ai une procédure stocké avec un @parametre mais je n'arrive pas à
>> récupérer la valeur de ma combox pour exécuter ma requete avec ce
>> paramètre
>> et remplir ma list box !
>>
>> Peut on passer le paramètre automatiquement dans un des objets utilisés
>> ou
>> faut il passer par du code ?
>>
>> Merci
>>
>>
>>





Avatar
Fino
En utilisant le designer je crée un méthode fill qui se base sur une
procédure stockée avec mes paramètres ensuite dans le code j'ai mis :

Me.Dbshop_CollectionsTableAdapter.FillByCategorie(Me.DbshopCollectionsDataSet.dbshop_Collections,
ComboBox_categories.SelectedValue.ToString)

Et avec cette ligne cela fonctionne dès le chargement dans la load form par
contre quand je veux relancer cette méthodesur le changement de ma selection
de ma combobox j'ai une erreur quand je quitte ma form : la réference
d'objet n'est pas définie à une instance d'un objet et je ne comprend pas
pourquoi j'ai cette erreur quand je quitte ma form sachant que la méthode
fonctionne si je passe outre ce code d'erreur !!!

si quelqu'un à une idée !

PS : L'adresse qui m'a aidée :
http://www.microsoft.com/france/msdn/vstudio/newdatasetVS05.mspx

"JFGerard" a écrit dans le message de
news:
Et ca donne quoi au niveau du code, si ce n'est pas indiscret ?

Cordialement

JF

"Fino" a écrit :

Merci de ta réponse.

J'ai trouvé mon erreur il me fallait créer ma propre méthode Fill afin
d'y
passer les paramètres en utlisant les nouveaux composants et du coup en
une
ligne tout ce fait !


"JFGerard" a écrit dans le message
de
news:
> Bonjour
>
> Sauf erreur, si tu remplis ta combo avec un DS/BS/AD, tu dois avoir
> parametre les proprietes Datasource (pour viser la BS) et DisplayMember
> (pour
> presenter la colonne de la table) de la CB.
>
> Sur un evenement de type click de la CB, tu recuperes dans le
> SelectedItem
> un objet de type System.data.datarowview (attention il peut etre
> nothing)
> qu'il faut lire en tant que tel dans un objet :
> dim xRow as System.data.datarowview
> xrow = MaCB.selectedItem
> et tu accedes a tous les elements de la ligne de donnees par
> MonElementDeMaColonne = xrowview.item("LeNomDeMaColonne") (attention au
> cast)
>
> et tu peux envoyer ca comme parametre de la requete qui controle ta
> listbox
>
> et si tu utilises en plus la propriete ValueMember, elle stocke le nom
> de
> la
> colonne (que tu peux parametrer) qui te sert a recuperer le parametre
> dans
> la
> colonne qui t'interesse. Comme cela, tu evites une variable globale
> entre
> la
> procedure qui remplit la CB (moi, je fais toujours un fill au dernier
> moment)
> et la(les) procedure(s) d'evenements.
>
> en CompactFwk, je n'ai pas reussi a condenser en une ligne du type
> Attention : j'ai tape ce texte a la volee il y a peut-etre des erreurs
> de
> frappe. si souci, j'ai du vrai code testé et approuve, mais ca doit a
> peu
> pres marcher !!
> MonElementDeMaColonne = MaCB.selectedItem.item("LeNomDeMaColonne")
> mais ce doit etre une limitation du CFwk (et de toute facon le faire en
> 2
> lignes permet de debugger plus facilement !!).
> Si qlq'un a une idee, a suivre.
>
> Salut
> JF
>
>
> "Fino" a écrit :
>
>> Bonjour,
>>
>> J'ai une combo box qui est rempli en utilisant un
>> dataset/bindingsource
>> /tableadapter et je voudrais qu'une listbox se remplisse en
>> choisissant
>> l'information contenu dans la combox box.
>>
>> Donc j'ai une procédure stocké avec un @parametre mais je n'arrive pas
>> à
>> récupérer la valeur de ma combox pour exécuter ma requete avec ce
>> paramètre
>> et remplir ma list box !
>>
>> Peut on passer le paramètre automatiquement dans un des objets
>> utilisés
>> ou
>> faut il passer par du code ?
>>
>> Merci
>>
>>
>>







Avatar
JFGerard
Salut

merci pour l'info, j'ai a peu pres compris comment tu as codé ton truc.
Et effectivement j'ai (eu aussi) ce genre de souci lors de la fermeture des
"form conteneurs" des objets. Je pense que cela vient de l'ordre de
"destruction" des objets par le gestionnaire parce que, lorsque les liens
sont créés dynamiquement (dans du code, quite a ce que ce soit dans le new de
l'objet) ,cela ne se produit pas (ou plutot beaucoup moins !!).
C'est un peu le souci qui m'a fait abandonner la methodologie de liaisons
fortes en amont dans la creation de la form, pour plutot etablir le plus tard
possible les liens entre les controles et les donnees. Au loins comme cela,
je peux fermer proprement les liaisons quand j'en ai besoin et j'ai remarqué
moins "d'erreurs" a trapper.
Mais j'avoue que je n'ai pas encore assez compris tous ces mecanismes pour
avoir un avis peremptoire sur le sujet .... faudrait un gars plus costaud
pour nous eclairer.

Cordialement
JF

"Fino" a écrit :

En utilisant le designer je crée un méthode fill qui se base sur une
procédure stockée avec mes paramètres ensuite dans le code j'ai mis :

Me.Dbshop_CollectionsTableAdapter.FillByCategorie(Me.DbshopCollectionsDataSet.dbshop_Collections,
ComboBox_categories.SelectedValue.ToString)

Et avec cette ligne cela fonctionne dès le chargement dans la load form par
contre quand je veux relancer cette méthodesur le changement de ma selection
de ma combobox j'ai une erreur quand je quitte ma form : la réference
d'objet n'est pas définie à une instance d'un objet et je ne comprend pas
pourquoi j'ai cette erreur quand je quitte ma form sachant que la méthode
fonctionne si je passe outre ce code d'erreur !!!

si quelqu'un à une idée !

PS : L'adresse qui m'a aidée :
http://www.microsoft.com/france/msdn/vstudio/newdatasetVS05.mspx

"JFGerard" a écrit dans le message de
news:
> Et ca donne quoi au niveau du code, si ce n'est pas indiscret ?
>
> Cordialement
>
> JF
>
> "Fino" a écrit :
>
>> Merci de ta réponse.
>>
>> J'ai trouvé mon erreur il me fallait créer ma propre méthode Fill afin
>> d'y
>> passer les paramètres en utlisant les nouveaux composants et du coup en
>> une
>> ligne tout ce fait !
>>
>>
>> "JFGerard" a écrit dans le message
>> de
>> news:
>> > Bonjour
>> >
>> > Sauf erreur, si tu remplis ta combo avec un DS/BS/AD, tu dois avoir
>> > parametre les proprietes Datasource (pour viser la BS) et DisplayMember
>> > (pour
>> > presenter la colonne de la table) de la CB.
>> >
>> > Sur un evenement de type click de la CB, tu recuperes dans le
>> > SelectedItem
>> > un objet de type System.data.datarowview (attention il peut etre
>> > nothing)
>> > qu'il faut lire en tant que tel dans un objet :
>> > dim xRow as System.data.datarowview
>> > xrow = MaCB.selectedItem
>> > et tu accedes a tous les elements de la ligne de donnees par
>> > MonElementDeMaColonne = xrowview.item("LeNomDeMaColonne") (attention au
>> > cast)
>> >
>> > et tu peux envoyer ca comme parametre de la requete qui controle ta
>> > listbox
>> >
>> > et si tu utilises en plus la propriete ValueMember, elle stocke le nom
>> > de
>> > la
>> > colonne (que tu peux parametrer) qui te sert a recuperer le parametre
>> > dans
>> > la
>> > colonne qui t'interesse. Comme cela, tu evites une variable globale
>> > entre
>> > la
>> > procedure qui remplit la CB (moi, je fais toujours un fill au dernier
>> > moment)
>> > et la(les) procedure(s) d'evenements.
>> >
>> > en CompactFwk, je n'ai pas reussi a condenser en une ligne du type
>> > Attention : j'ai tape ce texte a la volee il y a peut-etre des erreurs
>> > de
>> > frappe. si souci, j'ai du vrai code testé et approuve, mais ca doit a
>> > peu
>> > pres marcher !!
>> > MonElementDeMaColonne = MaCB.selectedItem.item("LeNomDeMaColonne")
>> > mais ce doit etre une limitation du CFwk (et de toute facon le faire en
>> > 2
>> > lignes permet de debugger plus facilement !!).
>> > Si qlq'un a une idee, a suivre.
>> >
>> > Salut
>> > JF
>> >
>> >
>> > "Fino" a écrit :
>> >
>> >> Bonjour,
>> >>
>> >> J'ai une combo box qui est rempli en utilisant un
>> >> dataset/bindingsource
>> >> /tableadapter et je voudrais qu'une listbox se remplisse en
>> >> choisissant
>> >> l'information contenu dans la combox box.
>> >>
>> >> Donc j'ai une procédure stocké avec un @parametre mais je n'arrive pas
>> >> à
>> >> récupérer la valeur de ma combox pour exécuter ma requete avec ce
>> >> paramètre
>> >> et remplir ma list box !
>> >>
>> >> Peut on passer le paramètre automatiquement dans un des objets
>> >> utilisés
>> >> ou
>> >> faut il passer par du code ?
>> >>
>> >> Merci
>> >>
>> >>
>> >>
>>
>>
>>





Avatar
Fino
Oui si quelqu'un pouvait nous éclairer cela serait super car effectivement
la méthode est intéressante mais sans bug ;)


"JFGerard" a écrit dans le message de
news:
Salut

merci pour l'info, j'ai a peu pres compris comment tu as codé ton truc.
Et effectivement j'ai (eu aussi) ce genre de souci lors de la fermeture
des
"form conteneurs" des objets. Je pense que cela vient de l'ordre de
"destruction" des objets par le gestionnaire parce que, lorsque les liens
sont créés dynamiquement (dans du code, quite a ce que ce soit dans le new
de
l'objet) ,cela ne se produit pas (ou plutot beaucoup moins !!).
C'est un peu le souci qui m'a fait abandonner la methodologie de liaisons
fortes en amont dans la creation de la form, pour plutot etablir le plus
tard
possible les liens entre les controles et les donnees. Au loins comme
cela,
je peux fermer proprement les liaisons quand j'en ai besoin et j'ai
remarqué
moins "d'erreurs" a trapper.
Mais j'avoue que je n'ai pas encore assez compris tous ces mecanismes pour
avoir un avis peremptoire sur le sujet .... faudrait un gars plus costaud
pour nous eclairer.

Cordialement
JF

"Fino" a écrit :

En utilisant le designer je crée un méthode fill qui se base sur une
procédure stockée avec mes paramètres ensuite dans le code j'ai mis :

Me.Dbshop_CollectionsTableAdapter.FillByCategorie(Me.DbshopCollectionsDataSet.dbshop_Collections,
ComboBox_categories.SelectedValue.ToString)

Et avec cette ligne cela fonctionne dès le chargement dans la load form
par
contre quand je veux relancer cette méthodesur le changement de ma
selection
de ma combobox j'ai une erreur quand je quitte ma form : la réference
d'objet n'est pas définie à une instance d'un objet et je ne comprend pas
pourquoi j'ai cette erreur quand je quitte ma form sachant que la méthode
fonctionne si je passe outre ce code d'erreur !!!

si quelqu'un à une idée !

PS : L'adresse qui m'a aidée :
http://www.microsoft.com/france/msdn/vstudio/newdatasetVS05.mspx

"JFGerard" a écrit dans le message
de
news:
> Et ca donne quoi au niveau du code, si ce n'est pas indiscret ?
>
> Cordialement
>
> JF
>
> "Fino" a écrit :
>
>> Merci de ta réponse.
>>
>> J'ai trouvé mon erreur il me fallait créer ma propre méthode Fill afin
>> d'y
>> passer les paramètres en utlisant les nouveaux composants et du coup
>> en
>> une
>> ligne tout ce fait !
>>
>>
>> "JFGerard" a écrit dans le
>> message
>> de
>> news:
>> > Bonjour
>> >
>> > Sauf erreur, si tu remplis ta combo avec un DS/BS/AD, tu dois avoir
>> > parametre les proprietes Datasource (pour viser la BS) et
>> > DisplayMember
>> > (pour
>> > presenter la colonne de la table) de la CB.
>> >
>> > Sur un evenement de type click de la CB, tu recuperes dans le
>> > SelectedItem
>> > un objet de type System.data.datarowview (attention il peut etre
>> > nothing)
>> > qu'il faut lire en tant que tel dans un objet :
>> > dim xRow as System.data.datarowview
>> > xrow = MaCB.selectedItem
>> > et tu accedes a tous les elements de la ligne de donnees par
>> > MonElementDeMaColonne = xrowview.item("LeNomDeMaColonne") (attention
>> > au
>> > cast)
>> >
>> > et tu peux envoyer ca comme parametre de la requete qui controle ta
>> > listbox
>> >
>> > et si tu utilises en plus la propriete ValueMember, elle stocke le
>> > nom
>> > de
>> > la
>> > colonne (que tu peux parametrer) qui te sert a recuperer le
>> > parametre
>> > dans
>> > la
>> > colonne qui t'interesse. Comme cela, tu evites une variable globale
>> > entre
>> > la
>> > procedure qui remplit la CB (moi, je fais toujours un fill au
>> > dernier
>> > moment)
>> > et la(les) procedure(s) d'evenements.
>> >
>> > en CompactFwk, je n'ai pas reussi a condenser en une ligne du type
>> > Attention : j'ai tape ce texte a la volee il y a peut-etre des
>> > erreurs
>> > de
>> > frappe. si souci, j'ai du vrai code testé et approuve, mais ca doit
>> > a
>> > peu
>> > pres marcher !!
>> > MonElementDeMaColonne = MaCB.selectedItem.item("LeNomDeMaColonne")
>> > mais ce doit etre une limitation du CFwk (et de toute facon le faire
>> > en
>> > 2
>> > lignes permet de debugger plus facilement !!).
>> > Si qlq'un a une idee, a suivre.
>> >
>> > Salut
>> > JF
>> >
>> >
>> > "Fino" a écrit :
>> >
>> >> Bonjour,
>> >>
>> >> J'ai une combo box qui est rempli en utilisant un
>> >> dataset/bindingsource
>> >> /tableadapter et je voudrais qu'une listbox se remplisse en
>> >> choisissant
>> >> l'information contenu dans la combox box.
>> >>
>> >> Donc j'ai une procédure stocké avec un @parametre mais je n'arrive
>> >> pas
>> >> à
>> >> récupérer la valeur de ma combox pour exécuter ma requete avec ce
>> >> paramètre
>> >> et remplir ma list box !
>> >>
>> >> Peut on passer le paramètre automatiquement dans un des objets
>> >> utilisés
>> >> ou
>> >> faut il passer par du code ?
>> >>
>> >> Merci
>> >>
>> >>
>> >>
>>
>>
>>