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] Insertion et selection de valeur


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut [C#][ComboBox] Insertion et selection de valeur
    Bonjour,
    Au chargement d'un form j'ai besoin de remplir un combobox avec des valeurs d'une BDD ayant 1 ID et 1 libellé.
    Au retour d'une requête j'obtiens une Id d'élément de ce combobox que j'aimerais alors sélectionner.
    J'ai vu qu'il y a la possibilité de sélectionner par la valeur du texte mais ça me semble hasardeux (espace, apostrophe etc...)
    J'aurais donc voulu au moment du remplissage de mon combobox, ajouter mes éléments avec un
    Combobox.Items.insert(<Id >, <libellé>)
    Malheureusement mes Id ne commencent pas forcement à 0 et dans ce cas, il refuse d’ajouter mes valeurs….
    Avez-vous une idée pour une autre solution ?

    Merci à vous

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    tu récupère les données de ta BDD Comment ? avec un DataSet ? Un Datareader ?

  3. #3
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Pardon, avec un DataReader
    Pour le moment je fais ça et je voulais faire une selection à partir du premier caractère mais je ne vois pas comment aire et je ne trouve pas très propre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    clRequete Requete = new clRequete("SELECT ID_TAS, TYPE FROM XC_TAS");
    SqlDataReader drListeTas = Requete.QueryRequete();
    while (drListeTas.Read())
    {
       cbTypeAssiette_CGP.Items.Add(drListeTas.GetDouble(0) + "- " + drListeTas.GetString(1));
    }
    cbTypeAssiette_CGP.SelectedIndex = 0;
    drListeTas.Close();
    J'aurais préféré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    clRequete Requete = new clRequete("SELECT ID_TAS, TYPE FROM XC_TAS");
    SqlDataReader drListeTas = Requete.QueryRequete();
    while (drListeTas.Read())
    {
       cbTypeAssiette_CGP.Items.Insert(Convert.ToInt32(drListeTas.GetDouble(0)), drListeTas.GetString(1));
    }
    cbTypeAssiette_CGP.SelectedIndex = 0;
    drListeTas.Close();

    P.S : merci pour la réponse si rapide !!!

  4. #4
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Ce qui ne va pas dans ton code, c'est que tu utilise d'une mauvaise façon la méthode Insert(int index, object obj) de la class ListItem.
    Le premier paramètre (int index) correspond à l'odre d'apparition de l'éméent dans la liste déroulante.

    Quand tu ajoute des élements dans une liste déroulante de manière manuelle, tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cbTypeAssiette_CGP.Items.Add(drListeTas.GetDouble(0) + "- " + drListeTas.GetString(1));
    Auquel cas l'index est créé automatiquement

    Mais dans ton cas, je ferais plutot une alimentation automatique (binding) de telle façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    clRequete Requete = new clRequete("SELECT ID_TAS, TYPE FROM XC_TAS");
    SqlDataReader drListeTas = Requete.QueryRequete();
     
    cbTypeAssiette_CGP.DataSource = drListeTas;
    cbTypeAssiette_CGP.DisplayMember = "TYPE";
    cbTypeAssiette_CGP.ValueMember = "ID_TAS";
    cbTypeAssiette_CGP.DataBind();
     
    drListeTas.Close();
     
    cbTypeAssiette_CGP.SelectedIndex = 0;

    Puis pour sélectionner un élément parmis la liste en fonction de son Id :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    			int i=0;
    			foreach (object var in comboBox1.Items)
    			{
    				if (Convert.ToInt32(var) == 3)
    				{
    					comboBox1.SelectedIndex = i;
    					break;
    				}
    				i++;
    			}

  5. #5
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Merci pour cette méthode qui à l'air assez pratique.
    par contre il semble il y avoir plusieurs problèmes

    Premièrement il n'a pas de définition pour le DataBind() sur mon combobox.
    Ensuite en supprimant la ligne du databond, juste pour essayer, il semble ne aps apprécier le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SqlDataReader drListeTas = Requete.QueryRequete();
    cbTypeAssiette_CGP.DataSource = drListeTas;
    Le débogueur me répond : "DataBinding complexe accepte IList ou IListSource comme source de données."

    Enfin une petite dernière chose, dans la boucle for pour sélectionner la valeur,
    le object var in comboBox1.Items va représenter le ValueMember ??

    Merci beaucoup pour ton aide et tes explications.

  6. #6
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Premièrement il n'a pas de définition pour le DataBind() sur mon combobox.
    Effectivement, j'ai confondu

    Le débogueur me répond : "DataBinding complexe accepte IList ou IListSource comme source de données."
    Ouai en fait me suis planté sur toute la ligne, dsl...
    Faut trouver aut'chose, je regarde de + près

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

Discussions similaires

  1. [MySQL] insert select avec valeur par défautl
    Par omelhor dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/07/2012, 18h26
  2. Réponses: 1
    Dernier message: 14/12/2009, 16h19
  3. insert int avec une valeur + un select
    Par polo86 dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/05/2009, 12h25
  4. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32
  5. [Insert et Select de la même table]
    Par lucimast dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/01/2004, 14h53

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