Remplir une listbox avec une base de donne

Signaler
Messages postés
52
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
3 août 2004
-
Messages postés
2
Date d'inscription
mercredi 4 mai 2011
Statut
Membre
Dernière intervention
17 mai 2011
-
bonjour,

je recherche le moyen de remplir un composant listebox
avec des donnees issues d'une requete SQL du
genre "SELECT * FROM CD WHERE cd_NAME != NULL".

le probleme c est que je sais lancer la requette mais apres je ne sais pas comment faire pour recupere les donne renvoye par la base donnees pour les integre dans une listbox

quelqu'un pourais t'il m aider

9 réponses

Messages postés
24
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
25 février 2004
2
Tu as deux facons de faire:

1. De facon Déconnecté utilisqnt un dataset
OleDbConnection cnn = new OleDbConnection(ConnectionString);

OleDbCommand cmd = new OleDbCommand("SELECT * FROM CD WHERE cd_NAME != NULL", cnn);

OleDbDataAdapter da = new OleDbDataAdapter(cmd);

DataSet ds = new DataSet();

try{
    da.Fill(ds, "CD");
    lbTest.DataSource = ds.Tables["CD"];
    lbTest.DisplayMember = "cd_NAME";
}
catch{}


2. De facon Connecter utilisant un dataReader
OleDbConnection cnn = new OleDbConnection(ConnectionString);

OleDbCommand cmd = new OleDbCommand("SELECT * FROM CD WHERE cd_NAME != NULL", cnn);

OleDbDataReader dr;

try{
    cnn.Open();
    dr = cmd.ExecuteReader
(CommandBehavior.CloseConnection);

    while(dr.Read()){
        lbTest.Items.Add(dr["cd_NAME"]);
    }
}
catch{}
finally{
    cnn.Close();
}


Stegars
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
sqlConnection1.Open();
sqlDataAdapter1.Fill(dataSet11);
listBox1.DisplayMember = "FirstName";
listBox1.DataSource = dataSet11.Employees;
sqlConnection1.Close();


explications:
- sqlConnection1 est de type SqlConnection
- sqlDataAdapter1 est de type SqlDataAdapter et se dirige vers la table Employees de la base Northwind (SqlServer).
- dataSet11 est de type DataSet1 (qui est un DataSet typé généré à partir des ADODataAdapters présents (ici sqlDataAdapter1)
- DisplayMember est le champs (colonne) de la table Employees qui sera afficher dans les différents Item de ta listbox.
- DataSource est la source de données (ici la table Employees du dataset typé). Il est important pour un ListBox de préciser un nom de table comme source de données et non un DataSet directement.

[Membre du laboratoire .NET de SUPINFO]
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
Ca fait un peu violent pour une simple liaison de données ...

[Membre du laboratoire .NET de SUPINFO]
Messages postés
52
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
3 août 2004

c'est ce j'ai trouver comme solution 20 min apres avoir poster ce message (je parle de la methode 2) mais je te remerci beaucoup d'avoir repondu comme meme .Par contre maintenat c es't de passer a une fonction d'impression les element selectionne dans ma listview qui est plus compliquer .car ce que je veux imprimer c'est pas information contenu ds ma listview mais les information auquel font reference l'object selectionne(reference a ce que contient la base de donne)

bon je sais po si tu as tout compris mais si tu sais faire explique le moi
Messages postés
1
Date d'inscription
dimanche 16 mai 2004
Statut
Membre
Dernière intervention
8 novembre 2004

et comment le remplir qu'avec certains champs, j'entends par là, effectuer un select sur le dataset... ce qui me retourne un DataRow[]...

voila mon code... qui ne marche pas. J'ai une erreur sur le displaymember

listBox1.BeginUpdate();
DataRow[] dr = dataset.Tables[0].Select("ID=5", "nom asc");
listBox1.DataSource = dr;
listBox1.DisplayMember = dataset.Tables[0].Columns["nom"].ToString();
listBox1.ValueMember = dataset.Tables[0].Columns["ID"].ToString();
listBox1.EndUpdate(); 


merci de votre aide
Messages postés
1
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
1 juin 2005

Mais si je ne m'abuse, ce code (en tout cas, ce qui concerne les DisplayMember) ne fonctionne qu'en WinForm. J'ai le même problème en WebForm, il faut alors passer par une solution moins élégante... A moins que je ne me sois trompé quelque part...
Messages postés
33
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 juin 2005

je relance le sujet car j'ai un problème

qd je modifie mon dataset le listbox ne se met pas a jour et au contraire il perd la ligne mise a jour ??

une solution?

from niko
Messages postés
2
Date d'inscription
mercredi 4 mai 2011
Statut
Membre
Dernière intervention
17 mai 2011

merci tout
Messages postés
2
Date d'inscription
mercredi 4 mai 2011
Statut
Membre
Dernière intervention
17 mai 2011

commant lier ListBox avec base de donnnées