2011-01-07 3 views
1

J'essaie de remplir une liste déroulante avec des données d'une base de données SQL, mais j'échoue lamentablement. Le code me semble correct mais refuse de travailler.SqlDataSource refuse de coopérer

SqlDataSource sql_Names = new SqlDataSource(WebConfigurationManager.ConnectionStrings[1].ConnectionString, "SELECT name FROM Names"); 
      sql_Names.DataSourceMode = SqlDataSourceMode.DataReader; 
      ddl_names.DataSource = sql_Names; 
      ddl_names.DataBind(); 

La connexion à la base de données fonctionne. Il crée la bonne quantité d'entrées (identique au nombre de lignes dans la base de données) dans la liste déroulante mais instaure les valeurs qu'il remplit chaque élément de la liste avec "System.Data.DataRecordInternal" (ou "System.Data. DataRowView "si le mode est défini sur DataSet).

S'il vous plaît aider ...

Répondre

3

Vous devez définir le DataTextField et DataValueFields appropriée

essayer

ddl_names.DataTextField = "name"; 
ddl_names.DataValueField = "name"; 

avant la DataBind

+0

Fonctionne maintenant, merci. – Paul

1

vous devez définir le ddl_names.DataTextField et Propriétés ddl_names.DataValueField. Donc, votre code final devrait ressembler à ceci:

SqlDataSource sql_Names = new SqlDataSource(WebConfigurationManager.ConnectionStrings[1].ConnectionString, "SELECT name FROM Names"); 
sql_Names.DataSourceMode = SqlDataSourceMode.DataReader; 
ddl_names.DataTextField = "name"; 
ddl_names.DataValueField = "name"; 
ddl_names.DataSource = sql_Names; 
ddl_names.DataBind(); 
+0

Fonctionne maintenant, merci. – Paul