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 :

Remplir un label a partir du choix d'un COmboBox


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Remplir un label a partir du choix d'un COmboBox
    BOnjour,

    mon probleme se resume a remplir un label a partir du choix d'un ComboBox.

    j'ai une base de donnée de 3 colonnes alors la deuxieme colonne je la choisi a partir du combo et je veux que le label reçoit la valeur de la 3eme colonne .

    Voila mon Code :
    ---> Pour remplir le Combobox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    bateau.Items.Clear();
                cmd2.CommandText = "select nom from bateaux";
                dr = cmd2.ExecuteReader();
                while (dr.Read())
                {
                    bateau.Items.Add(dr[0].ToString());
                }
                dr.Close();
    ---> Pour remplir le label
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cmd3.CommandText = "select NC from bateaux where nom=" + bateau.Items.ToString();
                dr = cmd3.ExecuteReader();
                NC.Text = dr[0].ToString();
    Lorsque j'execute je reçoie le msg suivant : " The multi-part identifier "System.Windows.Forms.ComboBox" could not be bound.
    Invalid column name 'ObjectCollection'.
    "

    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Déjà remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd3.CommandText = "select NC from bateaux where nom=" + bateau.Items.ToString();
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd3.CommandText = "select NC from bateaux where nom='" + bateau.Items.ToString()+"'";
    Ensuite, je pense qu' il doit te manquer l'item sélectionné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bateau.Items[iSelection].ToString()

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    j'ai remplacé le premier code !!!

    mais pour le deuxieme je sais pas ou exactement le mettre j'ai essayé un truc genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void bateau_SelectedIndexChanged(object sender, EventArgs e)
            {
                cmd3.CommandText = "select NC from bateaux where nom='" + bateau.Items[iSelection].ToString() + "'";
                dr = cmd3.ExecuteReader();
                NC.Text = dr[1].ToString();
            }
    mais je reçois une erreur : Error The name 'iSelection' does not exist in the current context

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Bien sur, tu dois déclarer la variable et l'affecter avec l'indice de la position courante de la combo. Tu trouveras dans la doc. la méthode pour avoir la sélection courante.

  5. #5
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par Aero'ix Voir le message
    BOnjour,
    mon probleme se resume a remplir un label a partir du choix d'un ComboBox.

    j'ai une base de donnée de 3 colonnes alors la deuxieme colonne je la choisi a partir du combo et je veux que le label reçoit la valeur de la 3eme colonne .
    Merci
    Bonjour,

    Tu peux utiliser la POO pour faire simple.

    1. Tu crées une classe avec des propriétés représentant les trois colonnes de ta table comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class ComboBoxItems
    {
         public string Id { get; set; }
         public string Nom { get; set; }
         public string NC { get; set; }
     
         // Override ToString();
         public override string ToString()
         {
             return Nom;
         }
     
    }
    2. Ensuite, tu remplis ta ComboBox comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    cmd2.CommandText = "select Id, nom, NC from bateaux";
    dr = cmd2.ExecuteReader();
    while (dr.Read())
    {
       var cbItem = new ComboBoxItems 
       {
           Id= dr.GetString(0), 		
           Nom= dr.GetString(1), 
           NC=dr.GetString(2)
       };          
        bateau.Items.Add(cbItem ); 
    }
    dr.Close();
    3. Sur le SelectedIndexChange Event de ta ComboBox, tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    private void bateau_SelectedIndexChanged(object sender, EventArgs e)
    {
       // Determine if there is any item selected
       if (bateau.SelectedItem !=null)
       {
          var item= new ComboBoxItems ();
          item.Id= ((ComboBoxItems) (bateau.SelectedItem)).Id;
          item.Nom= ((ComboBoxItems) (bateau.SelectedItem)).Nom;
          item.NC= ((ComboBoxItems) (bateau.SelectedItem)).NC;
          // Tu pourras ainsi utiliser les autres colonnes si besoin, sinon tu mets   
          // les lignes correspondantes en commentaires 
     
          // valeur de ta 3ème colonne affectée au label
          NC.Text = item.NC; 
        }
    }
    C'est plus propre et optimisé que de faire une requête sur ta base de données à chaque fois qu'un item de ta combobox est sélectionné.
    N'oubliez pas le tag et

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2012
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Callo

    Bonjour,

    Tu peux utiliser la POO pour faire simple.
    j'ai essayer ta méthode mais je reçois encore un message d'erreur :

    Unable to cast object of type 'System.String' to type 'ComboBoxItems'.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut salut
    essayez de mettre votre valeur sélectionnée dans une variable :
    et votre requête devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select NC from bateaux where nom=" + var;
    et en fin pour la remplissage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TONLABEL.Text = rdr .GetString(0);

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/03/2011, 16h47
  2. Réponses: 38
    Dernier message: 16/09/2010, 19h27
  3. Réponses: 5
    Dernier message: 05/07/2005, 20h25
  4. remplir des tables a partir de fichiers TXT
    Par jeremie dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/03/2004, 14h50

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