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

C# Discussion :

C# actualiser une comboBox


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 33
    Points
    33
    Par défaut C# actualiser une comboBox
    Salut les dév' !

    J'ai un petit soucis :
    Je fais une petite application windows form, je souhaite faire une fiche de dépôt en sélectionnant un client / ou le créer s'il n'existe pas, donc pour créer un nouveau client j'ouvre une nouvelle page (la création se passe bien) mais lorsque que je retourne sur ma page de dépôt mon client n'est pas dans ma liste déroulante... je suis obligé de relancer l'application si je veux que celui-ci y soit. J'ai essayé de faire un bouton "ACTUALISER" mais sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     private void btn_depot_actualiser_Click(object sender, EventArgs e)
            {
                cbx_depot_select_client.Refresh();
            }
    Et même avec un update ça ne fonctionne pas...
    Pouvez vous m'aider svp ?

  2. #2
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Bonjour

    Peux-tu nous montrer comment sont chargées les données affichées par ta combobox ?
    Shiv@ Skunk

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    Oui oui bien sûr !

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    private void PageDepot_Load(object sender, EventArgs e)
            {
    // Chargement de la liste des clients
                    // Préparation de la requête
                string requeteSelectClient = "SELECT * FROM CLIENT;";
                CURS curseurClient = new CURS(Connexion);
                curseurClient.ReqSelect(requeteSelectClient);
                string cliNom, cliPrenom, cliRue, cliCp, cliVille, cliTelPortable, cliTelFixe, cliMail;
                int cliId, cliIdEnt;
                while (!curseurClient.Fin())
                {
                    cliId = Convert.ToInt32(curseurClient.champ("CLI_ID"));
                    cliNom = curseurClient.champ("CLI_NOM").ToString();
                    cliPrenom = curseurClient.champ("CLI_PRENOM").ToString();
                    cliRue = curseurClient.champ("CLI_ADR_RUE").ToString();
                    cliCp = curseurClient.champ("CLI_ADR_CP").ToString();
                    cliVille = curseurClient.champ("CLI_ADR_VILLE").ToString();
                    cliTelPortable = curseurClient.champ("CLI_TEL_PORTABLE").ToString();
                    cliTelFixe = curseurClient.champ("CLI_TEL_FIXE").ToString();
                    cliMail = curseurClient.champ("CLI_MAIL").ToString();
                    cliIdEnt = Convert.ToInt32(curseurClient.champ("CLI_ID_ENTREPRISE"));
     
                    // Rempli la liste déroulante avec le nom et prénom du client
                    cbx_depot_select_client.Items.Add(cliNom + "  -  " + cliPrenom);
                    Client client1 = new Client(cliId, cliNom, cliPrenom, cliRue, cliCp, cliVille, cliTelPortable, cliTelFixe, cliMail, cliIdEnt);
                    lesClients.Add(client1);
     
                    curseurClient.suivant();
                }
                curseurClient.fermer(); 
    }
    Merci de ton attention

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    alors dans le principe, en programmation, on essaye pas d'écrire un truc au hasard parce que le libellé nous plait
    .refresh ou .update ca parait joli sur le papier (ou sur l'écran), mais comment cette ligne de code va deviner que c'est un combobox que tu as remplis depuis une base de données et qu'il doit le refaire ?
    oui parce qu'il y a des tas de moyens de remplir un combobox, et même des tas de le remplir depuis une base de données ; un programme ne fait que ce qu'on lui dit, il ne devine rien
    de plus en faisant F1 sur ces méthodes, on tombe sur l'aide qui dit que sa rafraichit graphiquement (chose qui en plus ne sert quasiment jamais vu que tout se rafraichit tout seul si on est pas apprenti sorcier)

    c'est donc à toi d'écrire le code, 2 possibilités, vu que tu viens de l'ajouter dans la base de données via une fenetre de saisie, rien ne t'empeche de l'ajouter en même temps dans le combobox
    sinon reéxecuter la requete (avec vidage du combobox avant)


    sinon là tu ajoutes le nom du client en tant que string dans le combobox, en POO on peut ajouter directement le client (ta variable client1) il y a ensuite un moyen de dire au combobox quoi afficher pour une instance de ta classe (overrider .ToString sur la classe est le plus simple)
    ca permet plein de choses, comme après de lire cmb.selecteditem, le caster sur Client, et donc de récupérer l'id ou autre facilement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Merci pour les informations !

    J'ai donc fait un bouton qui vide et relance ma requête (certes pas terrible dans lancer des requêtes pour rien).
    Le soucis c'est que mon nouveau client porte l'identifiant "1" lors de la réactualisation... j'ai bien nettoyé ma combobox avant de relancer la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     private void btn_depot_actualiser_Click(object sender, EventArgs e)
            {
                cbx_depot_select_client.Items.Clear();
                // Chargement de la liste des clients
                // Préparation de la requête
                string requeteSelectClient = "SELECT * FROM CLIENT;";
                CURS curseurClient = new CURS(Connexion);
    [..suite du code..]
    Merci encore !

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    mon nouveau client porte l'identifiant "1" lors de la réactualisation...
    Quel est son identifant dans la base de donnée ?
    Est-ce que le champ est défini comme Auto-incrément ?
    Quel SGBD ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Merci de ta réponse,

    Dès sa création il porte l'identifiant 2 ou + car je l'ai mis en auto_increment
    Je suis sous mysql wampserver :
    Serveur : mysql wampserver (127.0.0.1 via TCP/IP)
    Type de serveur : MySQL
    Version du serveur : 5.6.17 - MySQL Community Server (GPL)

Discussions similaires

  1. [XL-2003] Combobox qui actualise une listbox
    Par Marc31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/03/2012, 14h19
  2. [XL-2003] Actualiser une listbox a partir d'un combobox
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/10/2009, 11h15
  3. probleme actualisation d'une combobox générée par macro.
    Par elombre dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/06/2009, 12h38
  4. Code d'actualisation d'une combobox
    Par benoit13 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/07/2008, 16h30
  5. actualisation d'une combobox
    Par norkoffire dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 26/06/2007, 10h54

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