IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[DATASET] retourner la liste des valeurs d'une colonne dans un dataset


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut [DATASET] retourner la liste des valeurs d'une colonne dans un dataset
    Bonjour à tous,
    J'ai un dataset rempli avec ma table usager.
    Je me suis créé deux combobox, où j'aimerais avoir dans l'un la liste des noms des colonnes du dataset (lastName, FisrtNAme,....) , et dans l'autre les différentes valeur qu'il y a dans ma table correspondant au nom de colonne choisi.
    exemple: dans mon premier combobox, lorsque je choisi la colonne "lastNAme", je voudrais que le deuxième combobox se remplisse avec les nom de famille de tous les usager qu'il y a dans mon dataset.

    je sais que je peux obtenir mes colonnes de cette façon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mydataset,Tables(0).Columns
    mais encore là comment les mettre dans mon combo box, ça me retourne un dataColumnCollection.

    Comment faire pour avoir la liste des valeurs correspondant à une colonne?
    Je ne voudrais pas utiliser une boucle for ou for each car il est possible que le nombre d'enregistrements soit très élevé. comment faire?
    merci
    shirya

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    comboBox1.DataSource = Mydataset.Tables("le_nom_de_la_table")
    comboBox1.DataMember = "le_nom_de_la_colonne"

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    ReBonjour,
    En effet, ce que Tomlev a donnée comme solution fonctionne.
    Seulement, avec ce que je veux faire, il faut absolument qu'un arrayList soit affecter au datasource de mes comboBox.
    N'y aurait-il pas un autre moyen?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par shirya Voir le message
    Seulement, avec ce que je veux faire, il faut absolument qu'un arrayList soit affecter au datasource de mes comboBox.
    pourquoi ça ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    Resalut.
    En fait, je travaille avec WCF .
    J'aimerais donc une liste d'une colonne plus tôt que tout le dataset pour ne pas "alourdir"

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    dans ce cas tu n'as pas vraiment le choix, il faut faire un foreach pour remplir l'ArrayList
    Au passage, je te conseille d'utiliser un List<T> plutôt qu'un ArrayList... ça marche pareil sauf que c'est fortement typé, ce qui évite d'avoir à faire des cast à chaque fois que tu récupères une valeur de la liste

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    @ tomlev (ou autre ) :

    Par rapport à ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    comboBox1.DataSource = Mydataset.Tables("le_nom_de_la_table")
    comboBox1.DataMember = "le_nom_de_la_colonne"
    Est-il possible d'obtenir ce qui est contenu dans la combobox sans doublons ?
    Merci de votre aide

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par kgb1917 Voir le message
    Est-il possible d'obtenir ce qui est contenu dans la combobox sans doublons ?
    Oui, mais c'est moins direct... il faut créer une nouvelle DataTable via une DataView :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DataView dv = new DataView(Mydataset.Tables("le_nom_de_la_table"))
    DataTable dt = dv.ToTable(true, "colonne1", "colonne2");
    comboBox1.DataSource = dt;
    comboBox1.DisplayMember = "colonne1";
    comboBox1.ValueMember = "colonne2";
    (au passage, j'ai corrigé une erreur dans le code précédent : ComboBox n'a pas de membre DataMember...)
    Mais de toutes façons, si tu as défini une clé primaire dans ta DataTable, tu ne devrais jamais avoir de doublons...)

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    D’abord, merci de ta réponse.

    Pour être précis, je cherche à recenser le contenu d’une colonne de ma gridview dans une combo. D’où ma question sur les doublons à éliminer dans la source de la combo.

    Donc par rapport à tes explications, je ne suis pas sûr d’avoir codé correctement.
    défini une clé primaire dans ta DataTable
    Je m’explique.

    J’ai une requête tout ce qui a de plus normal (SELECT champ1, champ2, ... FROM MaTable). Cette requête me sert à remplir un dataset via dataadapater puis une datatable. Cette datatable est source de la gridview.

    Ma combo reprend alors le contenu d’une seule colonne de la gridview (elle me servira à la filtrer par la suite). C’est pour ça que je souhaiterai qu’elle ne comporte pas de doublons.

    S’il y a une autre façon de procéder par rapport à ce que j’ai fait, je suis preneur.
    Merci de votre aide

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    OK... si tu veux, par exemple, toutes les valeurs distinctes de champ1, il faut juste passer true et "champ1" en paramètre de DataView.ToTable. Ca te renverra une DataTable avec une seule colonne champ1 dont toutes les valeurs seront distinctes

Discussions similaires

  1. [XL-2010] Copie des valeurs d'une colonne dans un autre fichier sous condition
    Par Fred_rt dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/03/2015, 11h50
  2. Construire la liste des valeurs d'une combo
    Par MadMax4 dans le forum Ext JS / Sencha
    Réponses: 5
    Dernier message: 04/12/2010, 14h26
  3. Liste des valeurs d'une matrice
    Par airballman dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/05/2010, 10h50
  4. [MySQL] Perte de la liste des valeurs d'une requete sql
    Par yaya_la_rafale dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/04/2010, 14h30
  5. Réponses: 2
    Dernier message: 11/07/2006, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo