Remplir un combo box [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 7 juin 2006
Statut
Membre
Dernière intervention
27 mai 2007
-
kurapika_shinji
Messages postés
8
Date d'inscription
lundi 20 novembre 2006
Statut
Membre
Dernière intervention
30 juillet 2008
-
j'ai une DataTable que j'ai remplir à partie d'un DataAdapter.
Mais je ne trouve pas comment remplir mon combo box à partir de cette DataTable.
(Si il y a qlq 1 qui a un bout de code pour que je puisse l'utiliser ou des explications)
Merci.

8 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
ComboBox.DataSource = DataTable;
ComboBox.DataMember = "NomDeLaColonne";
ComboBox.DataValue = "NomDeLaColonne";

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
2
Date d'inscription
mercredi 7 juin 2006
Statut
Membre
Dernière intervention
27 mai 2007

le pb c que ma DataTable contient  plusieurs colonnes et je veux les afficher tous dans ma combo box
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
2
en utilisant les champs calculés par exemple
On crée une colonne que l'on ajoute a la datatable desirée du dataset
et on définit l'expression de cette colonne
avec un DataSet typé on peut faire cela depuis le designer

dans mon exemple j'affiche le nom et le prénom dans la combobox

DataSet1.
ContactDataTable dt =
new
DataSet1.
ContactDataTable();DataSet1TableAdapters.

ContactTableAdapter da =
new CsChampClacule.DataSet1TableAdapters.
ContactTableAdapter(); System.Data.

DataColumn oDataColumn =
new
DataColumn(
"ColumnChampcalcule"
);oDataColumn.Expression =

"ContactName + \' \' + ContactFirstName" ;dt.Columns.Add(oDataColumn);

da.Fill(dt);

 

comboBox1.DataSource = dt;

comboBox1.DisplayMember =

"ColumnChampcalcule" ;comboBox1.ValueMember =

"ContactID";
Messages postés
8
Date d'inscription
lundi 20 novembre 2006
Statut
Membre
Dernière intervention
30 juillet 2008

Bonjour tout le monde !!

Je fais un gros up de ce sujet pour poser une question.

Je ne parviens pas non plus a remplir un combobox, malgre 2 solutions essayées...

solution 1 :

DataTable oDataTable = Cfonctions.select("SELECT nom_classe FROM Classe ORDER BY nom_classe");
for (int i = 0; i < oDataTable.Rows.Count; i++)
{
Cbxclasse.Items.Add(oDataTable.Rows[i].Item("nom_classe"));
}

Erreur à l'execution :

'System.Data.DataRow' ne contient pas de définition pour 'Item'



En essayant la solution citée ici :

DataTable oDataTable = Cfonctions.select("SELECT nom_classe FROM Classe ORDER BY nom_classe");

Cbxclasse.DataSource = DataTable;
Cbxclasse.DataMember = "nom_classe";
Cbxclasse.DataValue = "nom_classe";


J'obtiens les erreurs suivantes :

'System.Windows.Forms.ComboBox' ne contient pas de définition pour 'DataMember'
'System.Windows.Forms.ComboBox' ne contient pas de définition pour 'DataValue'


Quelqu'un pourrait il m'expliquer d'ou vient le problème? A savoir qu'effectivement, lorsque j'ecrit par exemple "cbxclasse." DataMember et DataValue n'apparaissent pas dans le choix des methodes (DataSource est la en revanche).


Merci !!
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
as-tu essayé :

Cbxclasse.DataSource = DataTable;
Cbxclasse.DisplayMember = "nom_classe";
Cbxclasse.ValueMember = "nom_classe";

?

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
8
Date d'inscription
lundi 20 novembre 2006
Statut
Membre
Dernière intervention
30 juillet 2008

Merci de repondre aussi vite :)


Je n'avais effectivement pas essayé cela (je ne connaissais pas).
Peux tu m'expliquer pourquoi j'ai ces choix de méthode et non ceux cité plus haut?

Je precise que je suis débutant c# (je suis un habitué de vb6 et ses recordset) donc je ne suis pas habitué à gerer divers namespace et declarations de type "using XXX" (j'ai oublié l'appellation de ces declarations ^^), et c'est egalement ma 1ere connexion a une base de données (je faisais lecture/ecriture de fichiers avant).


Merci toutefois pour la résolution du problème, apres 2mois sans oser poser de question, je vais enfin pouvoir avancer dans mon projet (jusqu'au prochain probleme ^^'''')
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
hum... je pense que ma 1ère réponse fait un "mix" entre la solution Web et la solution Windows forms...

la bonne étant celle que je t'ai conseillé.

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
8
Date d'inscription
lundi 20 novembre 2006
Statut
Membre
Dernière intervention
30 juillet 2008

Merci beaucoup de m'avoir eclairé

Sébastien MALASSIGNE
Consultant Junior (VB6), et futur C# :p