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#]ComboBox et liaison


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Activité
    Inscrit en
    Juillet 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Activité

    Informations forums :
    Inscription : Juillet 2005
    Messages : 94
    Par défaut [C#]ComboBox et liaison
    Bonjour,

    J'ai un formulaire contenant les information d'un client:

    -Nom
    -Prénom
    -Numéro de tél.

    Les informations sont stockées dans le Dataset ds.Tables[0]. Ainsi, j'ai 3 champs TextBox et un ComboBox pour sélectionner le client par son ID.

    Voici le code que j'utilise pour lier mon ComboBox à la table de mon dataset:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                cboClient.DataSource = frmMenu.ds.Tables[0];
                cboClient.DisplayMember = "nom";
                cboClient.ValueMember = "id";
                cboClient.DataBindings.Add("Text", frmMenu.ds.Tables[0], "nom");
    Supposons que lorsque j'ouvre mon form, le client par défaut est le client 1. Ainsi, tous mes TextBox affichent les informations du client 1. Si je clique sur le ComboBox pour changer de client pour le client 2, je reçois une exception disant que je ne peux pas affecter cette valeur au ID du client 1 car "2" existe déjà.

    En d'autres mots, au lieu de changer le client qui s'affiche, il essaie de changer le ID du client pour un ID déjà existant. Moi, je veux seulement changer le client affiché. Avez-vous une idée de ce que je dois faire?

  2. #2
    Invité
    Invité(e)
    Par défaut
    C'est normal qu'il fasse cela car pour lui lorsque tu modifie ton champs id il pense que tu fais une modification de valeur comme si tu modifiais le nom du client par exemple.
    Personnelement j'utiliserai une requete SQL (du type SELECT * FROM client WHERE ID='idclient') sans lien directe avec cboClient.DataBindings.Add("Text", frmMenu.ds.Tables[0], "nom"); par contre tu peux garder le deux ligne pour initialiser la combox.

    Et ensuite à chaque changement de valeur tu recupere le resultat de la requete pour mettre a jour les autres champs.

  3. #3
    Membre confirmé
    Homme Profil pro
    Activité
    Inscrit en
    Juillet 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Activité

    Informations forums :
    Inscription : Juillet 2005
    Messages : 94
    Par défaut
    Merci beaucoup, ça fonctionne de cette manière.

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

Discussions similaires

  1. Combobox et liaison datasource
    Par Ismael94000 dans le forum C#
    Réponses: 2
    Dernier message: 27/09/2012, 12h51
  2. Combobox dans datagrid et liaison
    Par Plantadonf dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/03/2007, 15h33
  3. [vba Excel] Liaison Toogle Bouton Et Combobox
    Par CIBOOX dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/03/2007, 19h02
  4. Liaison entre un comboBox et un dataset
    Par robocop2776 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/01/2007, 18h02
  5. [VB.Net]Liaison entre listbox et combobox
    Par DonF dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/09/2006, 17h44

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