Erreur chargement DropDownList
Bonjour,
j'essaie d'exécuter la fonction suivante :
Code:
ChargerDropDownList("SELECT DISTINCT cast(CENTRE as varchar) as CENTRE, NOM FROM vue_SELECTION_CENTRE", d_centre, "NOM", "CENTRE", Cnx("vue_SELECTION_CENTRE"));
Avec la source :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| void ChargerDropDownList(string CodeSql, DropDownList MyDropDownList, string MyVar, string MyField, string MyCnx)
{
// Effacement du contenu
MyDropDownList.Items.Clear();
// Execute du code sql sur la BDD et met le résultat dans un DropDownList
SqlConnection myConnection = (SqlConnection)Session[MyCnx];
SqlCommand myCommand = new SqlCommand(CodeSql, myConnection);
SqlDataReader dtaRead = myCommand.ExecuteReader();
MyDropDownList.DataSource = dtaRead;
MyDropDownList.DataTextField = MyVar;
MyDropDownList.DataValueField = MyField;
MyDropDownList.DataBind();
if (dtaRead.RecordsAffected > 0)
{
while (dtaRead.Read())
{
MyDropDownList.Items.Add(dtaRead.GetString(0));
}
}
dtaRead.Close();
} |
Et j'obtiens l'erreur suivante :
Citation:
Détails de l'exception: System.Data.SqlClient.SqlException: 'TOTO': nom de colonne incorrect.
sur la ligne
Citation:
Ligne 228 : SqlDataReader myDataReader = myCommand.ExecuteReader();
Où TOTO est la première valeur de nom de la table.
par contre si on intervertit CENTRE et NOM dans l'appel de la fonction ça marche bien mais ce n'est pas ce que je voudrais obtenir (noms affichés à l'écran et valeurs de centre comme valeurs du contrôle).
Si quelqu'un arrive à comprendre l'erreur, ou bien a une autre manière de remplir un DropDownList avec Text et Values lues dans une table ça m'aiderait bien.
Merci ;)