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 :

Chargement Combobox a partir de la base de données sql server(Application WinForms C#.Net)


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Mai 2013
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 128
    Par défaut Chargement Combobox a partir de la base de données sql server(Application WinForms C#.Net)
    Bonjour ,

    j'ai reussi a faire un chargement d'une combobox a partir de la base de donnée sql server par les matricule d'une table voiture et faire charger le formulaire Planning Voiture qui contient une combobox qui doi se chargé par les matricules tous ca dans l'evenement load
    donc l'utilisateur doit fermé le formulaire Planning Voiture et le faire ouvrir une autre fois a fin d'avoir des nouvelles données mais moi je voudrais pas ca je voudrais que des que la matricule de voiture sera ajouter dans le formulaire voiture le combobox du formulaire planning Voiture doit se chargé instantanément sans avoir le fermé et l'ouvrir une autre fois ou utiliser un autre boutton actualiser

    Voilà ce que j'ai pensé a faire c'est d'ajouter un boutton actualiser qui fait le meme principe que l'evenement load mais ca n'a pas marché

    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
      private void PlanningVoitureFM_Load(object sender, EventArgs e)
            {
                try
                {
                    comboBoMatricule.Items.Clear();
                    comboBoMatricule.DataSource = Data_Entity.DataReparation.LoadCombo();
                    comboBoMatricule.DisplayMember = "Matricule";
     
     
                }
                catch (Exception) { }
            }
     
            private void btnActualiser_Click(object sender, EventArgs e)
            {
                try
                {
                    comboBoMatricule.Items.Clear();
                    comboBoMatricule.DataSource = Data_Entity.DataReparation.LoadCombo();
                    comboBoMatricule.DisplayMember = "Matricule";
     
     
                }
                catch (Exception) { }
            }
    Merci
    d'avance !

  2. #2
    Membre du Club
    Homme Profil pro
    Informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Par défaut
    Si tu arrives par le code que tu as fait à remplir ta combobox mais que tu veux en cliquant sur un bouton actualiser recharger ta combo etc... Ce n'est pas bien difficile si on a l'astuce. Crée une fonction qui charge ta combo, quand ton PlanningVoitureFM_Load tu l'appelles et dans le btnActualiser_Click. Si tu fais fonctionner ta fonction a chaque appel sa rechargera

  3. #3
    Membre très actif
    Inscrit en
    Mai 2013
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 128
    Par défaut
    Comment faire ca s'il vous plait est ce que vous pourriez m'aider par le code je comprends pas comment faire je sais pas ou placer la fonction dont vous parlez


    j'ai fait comme ca mais il m'a donné une erreur

    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
    public void Chargercombo()
            {
                comboBoMatricule.Items.Clear();
                comboBoMatricule.DataSource = Data_Entity.DataReparation.LoadCombo();
                comboBoMatricule.DisplayMember = "Matricule";
     
                combomatriculerech.Items.Clear();
                combomatriculerech.DataSource = Data_Entity.DataReparation.LoadCombo();
                combomatriculerech.DisplayMember = "Matricule";
            }
            private void PlanningVoitureFM_Load(object sender, EventArgs e)
            {
                try
                {
                    Chargercombo();
     
                }
                catch (Exception) { }
            }
     
     
            private void Actualiser_Click(object sender, EventArgs e)
            {
                Chargercombo();
            }
    Erreur :

    Impossible de modifier la collection d'éléments lorsque la propriété DataSource est définie.

  4. #4
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Pourquoi avoir copier / coller le code 2 fois ? Il suffit juste de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void Chargercombo()
            {
                combomatriculerech.Items.Clear();
                combomatriculerech.DataSource = Data_Entity.DataReparation.LoadCombo();
                combomatriculerech.DisplayMember = "Matricule";
            }
    Quelle était ton erreur lors de ta première version de code ?

    PS : fait gaffe aux "try catch" qui ne traitent pas l'erreur , c'est traitre et une mauvaise habitude.

  5. #5
    Membre très actif
    Inscrit en
    Mai 2013
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 128
    Par défaut
    je fai 2 fois le code car j'ai une autre combo de recherche qui se charge par la matricule des voitures entrées

    combomatriculerech.DataSource = Data_Entity.DataReparation.LoadCombo();

    la fonction loadcombo() c'est la fonction qui permet de charger la combobox avec les matricules voitures
    quand je fai

    combomatriculerech.Items.Clear();

    c'est pour ne pas avoir une liste combo qui se repete il faut vider aprés charger la nouvelle liste etc
    j'ai essayé de faire ca
    j'ai laissé mon try catch en commentaire je l'ai desactivé et aucune erreur

    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
     private void PlanningVoitureFM_Load(object sender, EventArgs e)
            {
                //try
                //{
     
                comboBoMatricule.Items.Clear();
                comboBoMatricule.DataSource = Data_Entity.DataReparation.LoadCombo();
                comboBoMatricule.DisplayMember = "Matricule";
     
                combomatriculerech.Items.Clear();
                combomatriculerech.DataSource = Data_Entity.DataReparation.LoadCombo();
                combomatriculerech.DisplayMember = "Matricule";
                //}
                //catch (Exception) { }
            }
    j'ai essayé aussi comme ca :

    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
          public void Chargercombo()
            {
                comboBoMatricule.Items.Clear();
                comboBoMatricule.DataSource = Data_Entity.DataReparation.LoadCombo();
                comboBoMatricule.DisplayMember = "Matricule";
     
                combomatriculerech.Items.Clear();
                combomatriculerech.DataSource = Data_Entity.DataReparation.LoadCombo();
                combomatriculerech.DisplayMember = "Matricule";
     
            }
            private void PlanningVoitureFM_Load(object sender, EventArgs e)
            {
                //try
                //{
                Chargercombo();
     
                //}
                //catch (Exception) { }
            }
    Tou marche bien jusqu'a maintenant mais lorsque j'ajoute un autre boutton pour actualiser sur place sans avoir fermer le formulaire planning voiture et le faire ouvrir pour une autre fois il me donne erreur
    dans ce cas j'ai erreur :
    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
     public void Chargercombo()
            {
                comboBoMatricule.Items.Clear();
                comboBoMatricule.DataSource = Data_Entity.DataReparation.LoadCombo();
                comboBoMatricule.DisplayMember = "Matricule";
     
                combomatriculerech.Items.Clear();
                combomatriculerech.DataSource = Data_Entity.DataReparation.LoadCombo();
                combomatriculerech.DisplayMember = "Matricule";
     
            }
            private void PlanningVoitureFM_Load(object sender, EventArgs e)
            {
                //try
                //{
                Chargercombo();
     
                //}
                //catch (Exception) { }
            }
     
            private void Actualiser_Click(object sender, EventArgs e)
            {
                Chargercombo();
     
            }
    et une capture ecran sur l'endroit de l'erreur pour plus de detail
    Nom : aideload.png
Affichages : 1003
Taille : 40,9 Ko

  6. #6
    Membre très actif
    Inscrit en
    Mai 2013
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 128
    Par défaut
    Je crois que j'ai reglé le probleme par ce code :

    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
     public void Chargercombo()
            {
     
                comboBoMatricule.DataBindings.Clear();
                comboBoMatricule.DataSource = Data_Entity.DataReparation.LoadCombo();
                comboBoMatricule.DisplayMember = "Matricule";
     
     
                comboBoMatricule.DataBindings.Clear();
                combomatriculerech.DataSource = Data_Entity.DataReparation.LoadCombo();
                combomatriculerech.DisplayMember = "Matricule";
     
            }
            private void PlanningVoitureFM_Load(object sender, EventArgs e)
            {
                //try
                //{
                Chargercombo();
     
                //}
                //catch (Exception) { }
            }
     
    private void Actualiser_Click(object sender, EventArgs e)
            {
                Chargercombo();
     
            }
    remplacer combobox.items.clear() par databinding.clear()

    mais avant de faire resolu je me demande si il ya une autre methode entre les deux formulaire sans boutton actualiser
    quand j'ajoute une voiture la combobox de planning voiture se charge immediatement sans boutton actualiser

    je sais que ce n'est pas facile de le faire mais je me demande si quelqu'un pourais me donner un exemple entre deux forme qui traite le meme cas
    et merci beaucoup !

Discussions similaires

  1. Réponses: 10
    Dernier message: 19/05/2015, 15h41
  2. Ajout dans un combobox a partir d'une base de données
    Par jihenjiji dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/04/2014, 11h36
  3. Réponses: 10
    Dernier message: 28/10/2011, 12h39
  4. Charger une combobox a partir d'une base de données
    Par mima_mine dans le forum Struts 1
    Réponses: 12
    Dernier message: 27/12/2009, 14h33
  5. Réponses: 4
    Dernier message: 19/10/2006, 17h19

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