Remplir un comboBox avec un arrayList

Résolu
Signaler
Messages postés
75
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
6 août 2007
-
Messages postés
4
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
8 avril 2011
-
J'ai eassayé les 3 solutions proposées ca ne marche pas
1ere solution: foreach(string str
in p
) this
.comboBox1
.Items
.Add(str
);
2 eme sol: ArrayList p=s.recuperernom();
for(int i=0;i<=p.count;i++){
comboBox1.Items.Add(p[i]);
3 eme sol:


this.comboBox.DataSource = myArrayList;

//voici la methode qui recherche la liste des codes dans la base
public static ArrayList listcode(){
ArrayList l=
new ArrayList();
OdbcConnection con=
new OdbcConnection("DSN=source2");
con.Open();

string req="select code from personne;";
OdbcCommand com=
new OdbcCommand(req,con);

//com.Connection=con;
OdbcDataReader r=com.ExecuteReader();

while(r.Read())
{

string p =r.GetString(4);
l.Add(p);
}

return l;
}



//methode qui devrait afficher la liste des codes dans le combo a chaque clic
private void comboBox1_Click(object sender, System.EventArgs e){
try{
ArrayList p=Classverifier.listcode();
foreach(string s in p){
this.comboBox1.Items.Add(s);}
}catch(Exception ex){MessageBox.Show(ex.Message);}
}

Mais quand j'essaie avec les 3 solutions proposées ca me donne le message Index was outside the bounds of the array
FD

FD

5 réponses

Messages postés
12
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
3 février 2006

As-tu absolument besoin de ton arrayList car tu peux envoyer a ta méthode ton objet combobox qui se rempliera automatiquement

public listcode(ComboBox cmbCodes){//Passge du comboBox en parametre
OdbcConnection con=new OdbcConnection("DSN=source2");
con.Open();
string req="select code from personne;";
OdbcCommand com=new OdbcCommand(req,con);
OdbcDataReader r=com.ExecuteReader();
while(r.Read())
{
cmbCodes.Items.Add(r.GetString(4)); //Ici tu remplis ton comboBox
}

ensuite tu appeles ta methode comme ça

Classverifier.listcode(comboBox1);
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
22
Ton exception elle doit se lever là :

string p =r.GetString(4);

Est tu sûr de ton index ? attention ca commence à 0. C'est a priori l'unique endroit ou tu peux planter.

::|The S@ib|::
MVP C#.NET
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
hum...

2ème solution :

for(int i=0;i<=p.count;i++){ <--- ici le = est à supprimer
comboBox1.Items.Add(p[i]);

Sébastien FERRAND
[MVP C#]
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
22
J4avais meme pas vu qu'il y avait du code tout en haut.

::|The S@ib|::
MVP C#.NET
Messages postés
4
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
8 avril 2011

salu g besion daide aussi je vx remplir un combobox à partir d'un fichier texte chargé dans une arrylist