2012-11-26 1 views
4

Je veux lier deux colonnes de la base de données dans la liste déroulante. Voici mon code:lier deux colonnes dans une liste déroulante

SqlConnection con=new SqlConnection(CommonRefference.Constr()); 
string query = "Select Id,Name+' ('+Distribution_name+') 'as Name1 from BR_supervisor "; 

SqlCommand cmd = new SqlCommand(query,con); 
con.Open(); 

SqlDataReader reader = cmd.ExecuteReader(); 

while (reader.Read()) 
{ 
     DropDownList3.DataSource = query; 
     DropDownList3.DataTextField = "name1"; 
     DropDownList3.DataValueField = "Id"; 
     DropDownList3.DataBind(); 
} 
con.Close(); 

Mais il donne l'erreur suivante

DataBinding: 'System.Char' ne contient pas une propriété avec le nom 'nom1'

Comment pour le faire? Tout le monde me aide est très appréciée

Répondre

3

Son Name1 pas nom1

changer cela

DropDownList3.DataTextField = "Name1"; 

EDIT:

Vous liez une chaîne (requête) à la source de données ici

DropDownList3.DataSource = query; 

et la chaîne n'avez pas une propriété avec le nom 'nom1', si l'erreur

SOLUTION:

Référer ce, j'ai changé cela pour vos besoins

private void LoadDropDownList() 
     { 
      SqlConnection con=new SqlConnection(CommonRefference.Constr()); 
      string query = "Select Id,Name+' ('+Distribution_name+') 'as Name1 from BR_supervisor "; 

      SqlCommand cmd = new SqlCommand(query,con); 
      con.Open(); 
      SqlDataReader reader = cmd.ExecuteReader(); 

      DropDownList3.DataSource = reader ; 

      DropDownList3.DataValueField = "Id"; 
      DropDownList3.DataTextField = "Name1"; 

      DropDownList3.DataBind(); 

      DropDownList3.Items.Insert(0, new ListItem("Select One", "0")); // Adds items to the DDL 
      DropDownList3.Items.Insert(1, new ListItem("All Categories", "-1")); 

      con.Close(); 
     } 

Pour plus d'explications, consultez ce lien Populate-ASP.NET-dropdownlist

+0

DataBinding: 'System.Char' ne contient pas de propriété portant le nom 'Name1'. – decoder

+0

Comment le résoudre.can u plz expliquer? – decoder

+0

se référer SOLUTION ci-dessus, j'ai changé cela pour votre condition. – sajanyamaha

0

Le problème est h avant:

DropDownList3.DataSource = query; 

Vous réglage d'une valeur de chaîne comme une source, il essaie donc de prendre une valeur de char comme un élément de votre menu déroulant.

Donc, en gros ce que vous avez besoin est de créer une sorte de source de données (liste pourrait être un bon), puis le remplir par moyen de votre lecteur, et vous pouvez faire quelque chose comme ce qui suit:

DropDownList3.DataSource = source; 
+0

pouvez-vous expliquer en détails.je suis nouveau à asp.net – decoder

+0

Vous devriez probablement jeter un oeil à ces deux articles, ils vont vous aider. [datareader] (http://msdn.microsoft.com/fr-fr/library/system.data.sqlclient.sqldatareader.aspx) [dropdownlist] (http://msdn.microsoft.com/fr-fr/ library/system.web.ui.webcontrols.dropdownlist.aspx) Les deux ont de bons exemples – dmigo

Questions connexes