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

Windows Forms Discussion :

[C#] Récupération de données à partir d'une combobox


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut [C#] Récupération de données à partir d'une combobox
    Bonjour à tous,

    Voilà déjà ma deuxième question, si ça continue, je vais errer dans ce forum beaucoup trop. Les réponses à ma précédente requête m'ayant pas mal aiguillé, je retente l'expérience avec un nouveau "problème" à vous exposer.

    Je vais vous simplifier mon souci puisque celui-ci se répète 4 fois, ça sert à rien que je vous décrive toute l'application.

    J'ai une combobox qui me permet de saisir un type de fiche à renseigner, par exemple une fiche incident, une fiche informative, etc. Cette combobox est alimentée depuis la base de données grâce aux fonctionnalités de Visual Studio 2005 (le petit menu contextuel qui apparait dans le designer).

    Dans ma base de données je stocke les types sur 2 colonnes, la première, la clé, Id est un entier, la seconde, l'intitulé, Intitule est une string.

    Lorsque je déroule ma combobox, je vois défiler les intitulés mais lorsque j'enregistre ma fiche, je voudrais stocker mon Id en table.

    Le souci, c'est que j'ai beaucoup de mal avec les DataBindings qui, après recherches, semblent être les plus à même de m'aider. J'ai fait quelques tests mais j'ai l'impression que tout foire. Quand je renseigne les DataBindings d'une certaine façon (ou même d'une autre), il arrive que mon intitulé soit remplacé par l'Id du nouvel intitulé que je viens de sélectionner ... et ainsi de suite.

    N'hésitez pas à me demander d'autres renseignements pour cela. Je n'ai pour l'instant pas de bout de code à vous transmettre puisque tout cela se passe dans le designer.

    D'avance un grand merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Normalement tu associes le DataSourceId de ton DropDownList à une source de données (DataSource) de type SqlDataSource, ObjectDataSource, etc...
    Tu définis ensuite les propriétés DataTextField et DataValueField de ton DropDownList.

    Ensuite tu accédes aux infos de ta liste comme ceci.

    DropDownList1.SelectedItem.Text;
    DropDownList1.SelectedItem.Value;

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Hmmmm la propriété (c'est bien comme ça que ça s'appelle ?) Text et Value peuvent donc contenir respectivement l'intitulé et l'id ...

    Je teste ça tout de suite.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Tiens nous au courant

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bon voilà, j'ai testé ... j'ai dû zapper une étape parce que mon objet "SelectedItem" n'a pas de propriété Text ou Value ...

    Ceci étant, j'ai bien défini ma DataSource

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Ta liste est remplie de données ?
    Tu as sélectionné un item de la liste ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Voilà ma BDD :

    Id - Intitule
    1 - Type de fiche
    2 - Incident
    3 - Demande d'information
    4 - Demande de travail

    La ComboBox m'affiche :
    Type de fiche
    Incident
    Demande d'information
    Demande de travail

    Quand je choisis typeFiche.SelectedItem (typeFiche est le nom de ma ComboBox) ou typeFiche.SelectedValue il ne me propose pas Value en auto complétion. Je voudrais que, lorsque l'utilisateur a choisi par exemple Incident, je puisse récupérer 2 en Id et non pas le texte Incident qui ne m'intéresse pas vraiment.

    (j'suis ptet un peu teubé j'avoue).

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    Qu'as tu dans TaList.SelectedItem.Text ?

    Si tu as "Incident" dans la propriété Text, tu devrais normalement avoir "2" dans TaList.SelectedItem.Value.

    Es tu sûr d'avoir renseigné : DataValueField dans les propriétés de ta DropDownList avec le nom de ton champ : "Id" ?

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Voilà ce que le designer m'a écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // 
                // typeFiche
                // 
                this.typeFiche.DataSource = this.typeFicheBindingSource;
                this.typeFiche.DisplayMember = "Intitule";
                this.typeFiche.Enabled = false;
                this.typeFiche.FormattingEnabled = true;
                this.typeFiche.Location = new System.Drawing.Point(215, 17);
                this.typeFiche.Name = "typeFiche";
                this.typeFiche.Size = new System.Drawing.Size(121, 21);
                this.typeFiche.TabIndex = 2;
                this.typeFiche.ValueMember = "Id";
                this.typeFiche.SelectedValueChanged += new System.EventHandler(this.typeFiche_Modification);
    A savoir que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.typeFicheBindingSource.DataMember = "TypeFiche";
                this.typeFicheBindingSource.DataSource = this.applicationRegionaleDataSet;
    TypeFiche étant ma table dans la base.

    Voilà, j'avoue que je ne trouve pas SelectedValue.Text et .Value ...

  10. #10
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    La réponse est tout bêtement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typeFiche.SelectedValue.ToString()
    Je suis impardonnable, j'avais dû faire une fausse manip ... bon par contre j'ai une exception mais je vais régler ça autrement.

  11. #11
    Membre régulier
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Points : 98
    Points
    98
    Par défaut
    Bonjour j'ai le même souci sauf que j'utilise une base de donnée access, comment faire ? Est il possible de procéder de la même façon ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2013, 14h08
  2. [XML] récupération de données à partir d'une base de données
    Par freddy000 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/01/2011, 15h31
  3. Problème de récupération de données à partir d'une liste déroulante
    Par olivier777 dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 25/10/2008, 09h50
  4. Récupération de données à partir d'une chekbox
    Par motard6 dans le forum Langage
    Réponses: 4
    Dernier message: 17/06/2008, 15h02
  5. Réponses: 10
    Dernier message: 17/11/2006, 15h20

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