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 :

[C#][1.1]Remplir Combobox avec sqlDataReader


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut [C#][1.1]Remplir Combobox avec sqlDataReader
    bonjour,

    Comme l'indique le titre, je cherche à remplir un combobox avec un sqldatareader
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    			string strReq =	"SELECT PK_TYPBATIMENT, VCH_TYPBATIMENT from TBL_KI_TYPBATIMENT";
    			SqlDataReader SDR = ... // remplissage : j'ai vérifié, j'ai bien les données attendues dans SDR à la fin de l'opération
     
    			this.cbxTypBat.DataSource = SDR;
    			this.cbxTypBat.ValueMember = "VCH_TYPBATIMENT";
    			this.cbxTypBat.DisplayMember = "PK_TYPBATIMENT";
    et j'ai le message d'erreur :
    Une exception non gérée du type 'System.Exception' s'est produite dans system.windows.forms.dll

    Informations supplémentaires : DataBinding complexe accepte IList ou IListSource comme source de données
    Est-il possible de remplir le combobox (que je veux utiliser comme une simple liste déroulante) avec un sqlDataReader ? Si oui, comment ? Si non, comment faire autrement ? Merci d'avance ! 8o)

  2. #2
    Inscrit Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Points : 283
    Points
    283
    Par défaut
    Je me demande si tu ne devrais pas plutot passer par un dataset.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Points : 43
    Points
    43
    Par défaut
    voici un bout de code qui remplit un combobox avec une liste de type de contrat que je récupère dans une table "type_cont" de ma base sql server
    j'ai créé une classe pour mon objet type de contrat et je remplis mon combo
    avec les objets que je récupère via ma requête.

    "this.sqlConnection1" est un objet sqlconnection de la boite à outil et je mets
    la chaine de connexion à ma base dans sa propriété "connectionstring"
    ex: Data Source=nom du serveur\domaine;Initial Catalog=nom de la base de données;Integrated Security=True

    //Références
    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient; //bibliothèque pour sqlreader

    //déclarations
    SqlCommand sql_cmd1;
    SqlDataReader sql_read1;
    string select1;

    select1 = "SELECT id_type_cont,RTRIM(libelle_type_cont) FROM TYPE_CONT WHERE id_type_cont<>99 ORDER BY ID_TYPE_CONT ASC ";

    sql_cmd1 = new SqlCommand(select1, this.sqlConnection1);
    sql_read1 = sql_cmd1.ExecuteReader();

    this.cmb_typecontrat.Items.Clear();
    this.cmb_typecontrat.Items.Add("");

    TypeContrat TypeContratDispo;//création de l'objet type contrat

    while (sql_read1.Read())

    if ((!sql_read1.IsDBNull(0)) && (!sql_read1.IsDBNull(1)))
    {
    TypeContratDispo = new TypeContrat(sql_read1.GetInt16(0), sql_read1.GetString(1));
    this.cmb_typecontrat.Items.Add(TypeContratDispo);
    }

    sql_read1.Close();
    sql_cmd1.Cancel();
    this.sqlConnection1.Close();

    en espérant que ça pourra t'aider ....

  4. #4
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Ha oui, j'avais pensé à la solution de faire une boucle, mais je ne trouve pas ça tres propre. Y a-t-il une raison pour empêcher l'utilisation directe d'un sqlDataReader comme pour un DropDownList en webform ?

Discussions similaires

  1. VBNet : Remplir combobox avec liste fichier
    Par biquet dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/01/2011, 15h18
  2. Réponses: 2
    Dernier message: 19/12/2007, 19h06
  3. Remplir Combobox avec plage
    Par Petit Ecolier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/08/2007, 16h25
  4. [C#] Remplir combobox avec un enum
    Par AlexandreP dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/12/2006, 14h47
  5. [VBA-E]Remplir combobox avec contenu d'une feuille Excel
    Par Deejoh dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2006, 16h16

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