Afficher données dans une comboBox

Résolu
cs_kenry22 Messages postés 8 Date d'inscription lundi 15 mars 2010 Statut Membre Dernière intervention 10 juin 2010 - 31 mai 2010 à 16:51
cs_kenry22 Messages postés 8 Date d'inscription lundi 15 mars 2010 Statut Membre Dernière intervention 10 juin 2010 - 1 juin 2010 à 23:10
Voila j'ai un problème avec ma comboBox je voudrais afficher une liste de pays dans la comboBox via une requête que j'ai testé qui fonction bien sous sql access pourtant lorsque je lance le programme rien se passe ma comboBox reste vide!

En faite ma combobox s'appelle CboBoxPays et codepays est la une variable globale
Ensuite après avoir affiché les pays je voudrais récupérer la variable globale qui me permettrait de l'utilisée dans uen table ou pay_code est utilisé en clé étrangère

Voila je sais pas si je me fais bien comprendre

Merci de votre aide

'CREATION DE LA REQUETTE
        Dim maRequete As String
        maRequete = "SELECT pay_nom FROM pays WHERE pay_code "

        'LA COMMANDE

        Dim maCommande4 As OleDbCommand
        maCommande4 = New OleDbCommand()
        maCommande4.Connection = Globale.connexion
        maCommande4.CommandType = CommandType.Text
        maCommande4.CommandText = maRequete

        'LE DATAREADER
        Dim monDatareader As OleDbDataReader
        monDatareader = maCommande4.ExecuteReader()
        While (monDatareader.Read() = True)
            CboBoxPays.Items.Add(monDatareader(monDatareader.Item(0)))
        End While

'CREATION DE LA REQUETTE
        Dim maRequete As String
        maRequete "SELECT pay_nom FROM pays WHERE pay_code " & codePays & ""

        'LA COMMANDE

        Dim maCommande4 As OleDbCommand
        maCommande4 = New OleDbCommand()
        maCommande4.Connection = Globale.connexion
        maCommande4.CommandType = CommandType.Text
        maCommande4.CommandText = maRequete

        'LE DATAREADER
        Dim monDatareader As OleDbDataReader
        monDatareader = maCommande4.ExecuteReader()
        While (monDatareader.Read() = True)
            CboBoxPays.Items.Add(monDatareader(monDatareader.Item(0)))
        End While


Voila j'ai un problème avec ma comboBox je voudrais afficher une liste de pays dans la comboBox via une requête que j'ai testé qui fonction bien sous sql access pourtant lorsque je lance le programme rien se passe ma comboBox reste vide!

En faite ma combobox s'appelle CboBoxPays et codepays est la une variable globale
Ensuite après avoir affiché les pays je voudrais récupérer la variable globale qui me permettrait de l'utilisée dans uen table ou pay_code est utilisé en clé étrangère

Voila je sais pas si je me fais bien comprendre

Merci de votre aide

'CREATION DE LA REQUETTE
        Dim maRequete As String
        maRequete = "SELECT pay_nom FROM pays WHERE pay_code "

        'LA COMMANDE

        Dim maCommande4 As OleDbCommand
        maCommande4 = New OleDbCommand()
        maCommande4.Connection = Globale.connexion
        maCommande4.CommandType = CommandType.Text
        maCommande4.CommandText = maRequete

        'LE DATAREADER
        Dim monDatareader As OleDbDataReader
        monDatareader = maCommande4.ExecuteReader()
        While (monDatareader.Read() = True)
            CboBoxPays.Items.Add(monDatareader(monDatareader.Item(0)))
        End While

'CREATION DE LA REQUETTE
        Dim maRequete As String
        maRequete "SELECT pay_nom FROM pays WHERE pay_code " & codePays & ""

        'LA COMMANDE

        Dim maCommande4 As OleDbCommand
        maCommande4 = New OleDbCommand()
        maCommande4.Connection = Globale.connexion
        maCommande4.CommandType = CommandType.Text
        maCommande4.CommandText = maRequete

        'LE DATAREADER
        Dim monDatareader As OleDbDataReader
        monDatareader = maCommande4.ExecuteReader()
        While (monDatareader.Read() = True)
            CboBoxPays.Items.Add(monDatareader(monDatareader.Item(0)))
        End While


[quote][color=blue]La hâte engendre en tout l'erreur, et de l'erreur sort bien souvent le désastre
/color/quote

9 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 juin 2010 à 09:10
Oui mais on dit plutôt DataSet fortement typé, donc tu as du ajouté un TableAdapter ?



Et tu as du relié ton combobox à ce dataset via son smartTag ? comme ceci :



En fait c'est exactement le but de mon code, par la suite tu peux récupéré la variable qui contiendra le code pays

Private Sub CboBoxPays_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboBoxPays.SelectedIndexChanged
    '
    'Ici tu récupere le code du pays.
    Dim CodePays As String = CboBoxPays.SelectedValue.ToString
    '
End Sub 


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
31 mai 2010 à 17:37
Salut,

Essaye comme ca :


        'CREATION DE LA REQUETTE
        Dim maRequete As String
        maRequete = "SELECT pay_nom FROM pays WHERE pay_code '" & codePays & "'"

        'LA COMMANDE
        Dim maCommande4 As New OleDbCommand(maRequete, Globale.connexion)
        Dim monDatareader As OleDbDataReader = maCommande4.ExecuteReader()
        With CboBoxPays
            .ValueMember = "pay_code"
            .DisplayMember = "pay_nom"
            .DataSource = monDatareader
        End With   


        Private Sub CboBoxPays_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboBoxPays.SelectedIndexChanged
            '
            'Ici tu récupere le code du pays.
            Dim CodePays As String = CboBoxPays.SelectedValue.ToString
        '
        End Sub 



Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
31 mai 2010 à 17:39
J'avais pas vu l'erreur dans la requête select :

Dim maRequete As String "SELECT pay_nom FROM pays WHERE pay_code '" & codePays & "'"


J'en profite pour la raccourcir

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
31 mai 2010 à 17:41
Heu... mais non attend !

Dim maRequete As String = "SELECT pay_nom FROM pays"


Pas de WHERE pour le remplissage du combo !

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
31 mai 2010 à 17:42
Arf, encore une boulette, je vais pas y arriver !

Dim maRequete As String = "SELECT pay_nom, pay_code FROM pays"


Bon cette fois ci c'est la bonne ^^

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
cs_kenry22 Messages postés 8 Date d'inscription lundi 15 mars 2010 Statut Membre Dernière intervention 10 juin 2010
1 juin 2010 à 00:50
Franchement je comprends pas j'ai essayer ta méthode mais cela ne fonctionne pas et j'ai du utilisé la méthode la plus facile pour avancer dans le programme et arrêter de me prendre la tête c'est à dire un DataSet et j'obtiens tous mes pays.
Mais le soucis est que je sais pas du tout comment récupérer le (pay_code clé primaire de la table pays) pour pouvoir l'insérer dans ma table artiste (en clé étrangère) que voici :
'CREATION DE LA REQUETTE
            Dim SQLAjouterART As String

            SQLAjouterART = "INSERT INTO artiste (art_nom, art_prenom,art_nationalite,art_biographie, art_photo, pay_code) values('" & TxtNom.Text & "','" & TxtPrenom.Text & "','" & TxtNationalite.Text & "','" & RTxtBio.Text & "', '" & PBoxOeuvre1.ImageLocation & "'," &....& ")"

            'LA COMMANDE

            Dim maCommande As OleDbCommand
            maCommande = New OleDbCommand()
            maCommande.Connection = Globale.connexion
            maCommande.CommandType = CommandType.Text
            maCommande.CommandText = SQLAjouterART

            'EXECUTION
            maCommande.ExecuteNonQuery()
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 juin 2010 à 03:22
Tu trouves ma méthode complexe ? Parce que c'est la méthode la plus simple en .Net, hors mis les assistant et Dataset fortement typé.

Qu'est ce qui ne fonctionne pas avec ma méthode, t'as eu un message d'erreur ? Si oui lequel ?

Tu parles d'un DataSet, tu veux dire un dataset fortement typé (le fichier .xsd), un dataset physique, ou bien un dataset par code ?

Avant de pouvoir insérer le code pays dans ta table, il faut le récupérer et pour cela il faut récupéré la valeur sélectionné dans le combobox si celui-ci est bien paramétré.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
cs_kenry22 Messages postés 8 Date d'inscription lundi 15 mars 2010 Statut Membre Dernière intervention 10 juin 2010
1 juin 2010 à 04:30
En je n'ai aucun message d'erreur lorsque j'exécute le programme par que la ComboBox reste vide..
Lorsque je parle du dataset je parle du (fichier .xsd)
Est qu'un dataset physique?
0
cs_kenry22 Messages postés 8 Date d'inscription lundi 15 mars 2010 Statut Membre Dernière intervention 10 juin 2010
1 juin 2010 à 23:10
Merci beaucoup de ton aide et d'avoir pour le temps passé sur mon problème



La hâte engendre en tout l'erreur, et de l'erreur sort bien souvent le désastre
0
Rejoignez-nous