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 :

Alimenter un Combobox par un champs d'une Base SQL


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 154
    Points : 55
    Points
    55
    Par défaut Alimenter un Combobox par un champs d'une Base SQL
    Bonjour,

    je veux alimenter un ComboBox par le contenu d'un champs (Service) d'une table SQL (Personnel).
    j'ai essayé avec le code suivant mais ça ne marche pas,ma liste déroulante du ComboBox reste toujours vide !!

    pouvez vous m'aider Svp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void comboBox5_SelectedIndexChanged(object sender, EventArgs e)
            {
                SqlConnection SqlConn = new SqlConnection("Data Source=TIMA;Initial Catalog=HOPITAL;Integrated Security=True");
                SqlCommand SqlComm = new SqlCommand("select service from personnel", SqlConn);
                SqlDataAdapter Sqldata = new SqlDataAdapter(SqlComm);
                DataSet DS = new DataSet();
                Sqldata.Fill(DS);
                comboBox5.DataSource = DS.Tables[0];
                comboBox5.DisplayMember = "service";
            }
    merci infiniment

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 85
    Points : 91
    Points
    91
    Par défaut
    Le champs "title" n'est pas dans la requête

  3. #3
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 154
    Points : 55
    Points
    55
    Par défaut
    désolée, je me suis trompé, j'ai rectifié mon code, y'a pas de champs title !!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    Ton dataset (et sa datatble) contient-il des données ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Je suis pas persuadé que d'utiliser un évenement du combobox pour le remplir soit une solution viable.

    Ensuite sur le contenu de la fonction, j'ai l'impression que tu te mélanges un peu les pinceaux.

    Soit tu utilises un dataset et dans ce cas:
    - Tu crées les bindings source et le tsoin tsoin en mode création
    - Tu remplis ce dernier à l'ouverture du formulaire (le code est écrit automatiquement par Visual Studio en principe)

    Soit tu utilises un datareader et sa requête SQL pour remplir "à la main" la collection du comboBox.Items à l'ouverture du formulaire

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Citation Envoyé par Sinople
    Je suis pas persuadé que d'utiliser un évenement du combobox pour le remplir soit une solution viable.
    Certainement pas !! Sinople a PLUS que raison !!
    Quelle Hooreur

    Deplace VITE tout ce code dans ton form Load !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                SqlConnection SqlConn = new SqlConnection("Data Source=TIMA;Initial Catalog=HOPITAL;Integrated Security=True");
                SqlCommand SqlComm = new SqlCommand("select service from personnel", SqlConn);
                SqlDataAdapter Sqldata = new SqlDataAdapter(SqlComm);
                DataSet DS = new DataSet();
                Sqldata.Fill(DS);
                comboBox5.DataSource = DS.Tables[0];
                comboBox5.DisplayMember = "service";
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  7. #7
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 154
    Points : 55
    Points
    55
    Par défaut
    Exactement, mon code etait correcte, fallait juste le mettre correctement dans le form load
    merci beaucoup.

    je me demandais si je voulais l'alimenter manuellement comment faire, genre .. pour civilité mettre Mme, Mlle, Mr !!?

    pouvez vous me guider Svp !?

    merci d'avance

  8. #8
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Pour alimenter une comboBox manuellement (par code ?) :
    Tu as le choix:
    1. alimenter les valeurs en chaine de caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    comboBox2.Items.Add("Mme");
    comboBox2.Items.Add("Mlle");
    comboBox2.Items.Add("Mr");
    2. Alimenter avec un objet (pour avoir accès directement à un code civilité par exemple

    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
     
    public class Civilite
    {
       int code;
       string description;
       public Civilite(){}
       public Civilite(int c, string d)
       {
          description = d;
          code = c
       }
       public int Code{get{return code;}set{code=value;}}
       public string Desc{get{return description;}set{description=value;}}
     
       public override ToString()
       {
          return description;
       }
    }
     
    List<Civilite> civilites = new List<Civilite>(new Civilite(1, "Mme"), new Civilite(2, "Mlle"), new Civilite(3, "Mr"));
    comboBox2.DataSource = civilites;
    tu peux recuperer à tout moment, le code civilité que tu veux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int codeCiviliteSelectionne = ((Civilite)comboBox2.SelectedItem).Code;
    Bon courage

  9. #9
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Et tu peux aussi le faire directement dans le designer dans les propriétés de ton combobox
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  10. #10
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Petite précision sur le remplissage par le designer.

    Ce dernier permettera uniquement d'indiquer une liste de chaîne de caractère et non une liste d'objet (Donc pas la possibilité d'avoir un couple clé -> valeurs) comme indiqué par titip.

    Et la fonction ToString() est utilisée pour l'affichage de l'objet dans la liste (ce que voit l'utilisateur), si cette dernière n'est pas renseignée ça ne produira pas d'erreur mais risque d'afficher des trucs incompréhensible.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Pour le bind, il peut faire (en complétant la proposition de titip) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<Civilite> civilites = new List<Civilite>(new Civilite(1, "Mme"), new Civilite(2, "Mlle"), new Civilite(3, "Mr"));
    comboBox2.DataSource = civilites;
    comboBox2.DisplayMember = "Desc";
    comboBox2.ValueMember = "Code";
    Ce qui évite d'utiliser le ToString() qui peut être utilisé à autre chose ! Comme afficher un truc du genre "Code : 1 - Desc : Mme"

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/05/2012, 18h14
  2. [XL-2010] Alimenter un ComboBox avec le contenu d'une colonne d'un fichier xls externe
    Par cryptoboss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2012, 14h56
  3. liste déroulante alimente par les champs d'une table sql
    Par gribouille343 dans le forum Langage
    Réponses: 6
    Dernier message: 04/01/2011, 16h44
  4. Réponses: 9
    Dernier message: 19/06/2008, 12h19
  5. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31

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