Afficher données dans une comboBox [Résolu]

cs_kenry22 8 Messages postés lundi 15 mars 2010Date d'inscription 10 juin 2010 Dernière intervention - 31 mai 2010 à 16:51 - Dernière réponse : cs_kenry22 8 Messages postés lundi 15 mars 2010Date d'inscription 10 juin 2010 Dernière intervention
- 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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 1 juin 2010 à 09:10
3
Merci
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.

Merci Mayzz 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 70 internautes ce mois-ci

Commenter la réponse de Mayzz
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 31 mai 2010 à 17:37
0
Merci
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.
Commenter la réponse de Mayzz
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 31 mai 2010 à 17:39
0
Merci
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.
Commenter la réponse de Mayzz
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 31 mai 2010 à 17:41
0
Merci
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.
Commenter la réponse de Mayzz
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 31 mai 2010 à 17:42
0
Merci
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.
Commenter la réponse de Mayzz
cs_kenry22 8 Messages postés lundi 15 mars 2010Date d'inscription 10 juin 2010 Dernière intervention - 1 juin 2010 à 00:50
0
Merci
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()
Commenter la réponse de cs_kenry22
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 1 juin 2010 à 03:22
0
Merci
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.
Commenter la réponse de Mayzz
cs_kenry22 8 Messages postés lundi 15 mars 2010Date d'inscription 10 juin 2010 Dernière intervention - 1 juin 2010 à 04:30
0
Merci
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?
Commenter la réponse de cs_kenry22
cs_kenry22 8 Messages postés lundi 15 mars 2010Date d'inscription 10 juin 2010 Dernière intervention - 1 juin 2010 à 23:10
0
Merci
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
Commenter la réponse de cs_kenry22

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.