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 une ComboBox depuis Sql Server


Sujet :

Windows Forms

  1. #21
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 46
    Points
    46
    Par défaut
    Merci.

    Une dernière chose si possible qui a un rapport avec ce même ComboBox.

    J'ai un DataGridView qui se trouve dans une Form différente de celle où se trouve le ComboBox. Le ComboxBox est rempli dans le Load de la Form dans lequel il se trouve.

    Je voudrais pouvoir, lorsque je clique sur mon DataGridView qu'il me sélectionne automatiquement dans le ComboBox, la valeur sélectionnée du DataGridView.

    Les autres objets de la Form, où se trouve le ComboBox; récupèrent les bonnes valeurs alors que le ComboBox affiche toujours ses valeurs par ordre alaphabétique alors que je voudrais qu'il me choisisse par défaut la valeur sélectionnée à partir du DataGridView de la 2ème Form.

  2. #22
    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
    As-tu résolu quand même ton précédent problème?

    Pour réaliser ce qu tu désires, tu peux procéder comme suit:
    - ajoute une méthode public dans ta form1 qui contient le combobox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public MaMethodePublic(string valueToSelect) 
    {
        TaComboBox.SelectedValue = valueToSelect;
    }
    - Utilise le polymorphisme en ajoutant un nouveau constructeur dans ta form2 qui recevra en paramètre form1. Un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private Form1 _maform1;
    public Form2(Form1 frm1) 
    {
          InitializeComponent();
          _maform1 = frm1;
    }
    - Pour ouvrir le form2 à partir du form1, utilise le constructeur que tu viens d'ajouter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Form2 frm2 = new Form2(this);
      frm2.ShowDialog();
    Ensuite, sur sélection de la valeur de ton datagridview, tu récupère la valeur sélectionnée et tu le passe à la méthode public de ta form1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       string valeurSelectionnerDgv; //  valeur sélectionnée du datagridview 
       valeurSelectionnerDgv = TonDataGridview.CurrentRow.Cells[0].Value.ToString(); // Mets le N° correspondant à l'index la colonne dont tu veux passer la valeur
       this._maform1.MaMethodePublic(valeurSelectionnerDgv);
    N'oubliez pas le tag et

  3. #23
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 46
    Points
    46
    Par défaut
    Oui mon problème précédent est résolu.

    J'ai fait comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ClientBO monClient = new ClientBO();
    monClient.ClientName = "Jinkas";
    liste.Insert(0, monClient);
    Sinon quelle doit être le type de ma méthode publique?

  4. #24
    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 Jinkas Voir le message
    Oui mon problème précédent est résolu.
    Sinon quelle doit être le type de ma méthode publique?
    Considérant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    while (Reader.Read())
    {
    	ClientBO c = new ClientBO();
     
    	c.ClientId = (int)Reader["NumClient"];
    	c.ClientName = Reader["NomClient"].ToString();
     
    	liste.Add(c);
    }
    //......
    cbxClient.ValueMember = "ClientId";
    cbxClient.DisplayMember = "ClientName";
    ,
    on en déduit ClientId de ton business object est de type Int, tu peux donc l'avoir comme un entier.
    N'oubliez pas le tag et

  5. #25
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 46
    Points
    46
    Par défaut
    Je parlais de la méthode que je dois créer dans form1.

  6. #26
    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 Jinkas Voir le message
    Je parlais de la méthode que je dois créer dans form1.
    Elle doit être de type void (ne va rien retourner)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void MaMethodePublic(int valueToSelect) 
    {
        TaComboBox.SelectedValue = valueToSelect;
    }
    Dans ce cas, tu peux déclarer la valeur à passer comme int et tu faits une conversion en Int avant de la passer à la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int valeurSelectionnerDgv; //  valeur sélectionnée du datagridview 
       valeurSelectionnerDgv = Convert.ToInt32(TonDataGridview.CurrentRow.Cells[0].Value); // Mets le N° correspondant à l'index la colonne dont tu veux passer la valeur
       this._maform1.MaMethodePublic(valeurSelectionnerDgv);
    N'oubliez pas le tag et

  7. #27
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 46
    Points
    46
    Par défaut
    Message d'erreur:

    Le format de la chaîne d'entrée est incorrect.
    J'ai fait ceci dans Form2

    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
            public Form2()
            {
                InitializeComponent();
            }
     
            private Form1 _maform1;
     
            public Form2(Form1 frm1)
            {
                InitializeComponent();
                _maform1 = frm1;
            }
     
            public void MaMethodePublic(int valueToSelect) 
           {
              MaComboBox.SelectedValue = valueToSelect;
           }
    et ça dans Form1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int valeurSelectionnerDgv; //  valeur sélectionnée du datagridview 
       valeurSelectionnerDgv = Convert.ToInt32(MonDataGridview.CurrentRow.Cells[4].Value); // Mets le N° correspondant à l'index la colonne dont tu veux passer la valeur
       this._maform1.MaMethodePublic(valeurSelectionnerDgv);

  8. #28
    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 Jinkas Voir le message
    Message d'erreur:

    J'ai fait ceci dans Form2

    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
            public Form2()
            {
                InitializeComponent();
            }
     
            private Form1 _maform1;
     
            public Form2(Form1 frm1)
            {
                InitializeComponent();
                _maform1 = frm1;
            }
     
            public void MaMethodePublic(int valueToSelect) 
           {
              MaComboBox.SelectedValue = valueToSelect;
           }
    et ça dans Form1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int valeurSelectionnerDgv; //  valeur sélectionnée du datagridview 
       valeurSelectionnerDgv = Convert.ToInt32(MonDataGridview.CurrentRow.Cells[4].Value); // Mets le N° correspondant à l'index la colonne dont tu veux passer la valeur
       this._maform1.MaMethodePublic(valeurSelectionnerDgv);
    La méthode public
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void MaMethodePublic(int valueToSelect) 
    {
      MaComboBox.SelectedValue = valueToSelect;
    }
    doit se trouver dans Form1 pas dans Form2.
    Le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int valeurSelectionnerDgv; //  valeur sélectionnée du datagridview 
       valeurSelectionnerDgv = Convert.ToInt32(MonDataGridview.CurrentRow.Cells[4].Value); // Mets le N° correspondant à l'index la colonne dont tu veux passer la valeur
       this._maform1.MaMethodePublic(valeurSelectionnerDgv);
    quant à elle doit se trouver dans Form2 vu que c'est elle qui contient ton datagridview.
    N'oubliez pas le tag et

  9. #29
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 46
    Points
    46
    Par défaut
    Oui exacte. Désolé je m'étais trompé.

    C'est ce que j'avais fait.

    Mais j'ai l'exception suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le format de la chaîne d'entrée est incorrect.

  10. #30
    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 Jinkas Voir le message
    Mais j'ai l'exception suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le format de la chaîne d'entrée est incorrect.
    Quelle est la ligne qui génère cette exception? Peux-tu nous montrer comment tu alimentes ton datagridview?
    N'oubliez pas le tag et

  11. #31
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 46
    Points
    46
    Par défaut
    J'ai réglé mon problème en faisant ceci:

    dans Form1, j'ai déclaré une variable de type string que j'ai appelé index et j'ai crée un constructeur avec un paramètre de type string comme ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private static string index;
     
            public Form1(string parametre)
            {
                InitializeComponent();
                index= parametre;
            }
    et après mon , j'ai fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int pos=0;
                foreach(ClientBO client in lstClient)
                {
                    if (client.ClientName != index)
                        pos++;
                    else
                        break;                    
                }
    Enfin, dans ma Form2, j'ai fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int index = datagridview.SelectedCells[0].RowIndex;
    string valeur= datagridview.Rows[index].Cells[4].Value.ToString();
     
                From1 frm1= new From1 (valeur);
                frm1.ShowDialog();

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/06/2009, 10h53
  2. remplir une combobox depuis un recordset
    Par Zorgloub dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2008, 16h12
  3. remplir une dropdownlist depuis une base sql
    Par Flamby38 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/01/2008, 19h30
  4. Réponses: 0
    Dernier message: 27/11/2007, 17h17
  5. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29

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