Заполнение выпадающего списка с помощью DisplayMember и ValueMember

#c# #asp.net #combobox

#c# #asp.net #выпадающий список

Вопрос:

Я пытаюсь заполнить Combox следующим образом :

         DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter("SELECT id,name FROM table1", con);
        da.Fill(ds, "FillDropDown");

        comboProject.DisplayMember = "FillDropDown.name";
        comboProject.ValueMember = "FillDropDown.id";
        comboProject.DataSource = ds.Tables["FillDropDown"];
  

Но все элементы отображаются как «System.Data.DataRowView» в выпадающем списке. почему это так?
Заранее спасибо.

Комментарии:

1. Предупреждение. Использование DisplayMember = «name» может привести к сбоям при обнулении точек. Поскольку он больше не будет называться «name».

Ответ №1:

попробуйте это:

 DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("SELECT id,name FROM table1", con);
da.Fill(ds, "FillDropDown");

comboProject.DisplayMember = "name";
comboProject.ValueMember = "id";
comboProject.DataSource = ds.Tables["FillDropDown"];
comboProject.DataBind();
  

Ответ №2:

 try  comboProject.DataSource = ds.Tables["FillDropDown"].DefaultView;
  

Комментарии:

1. @Pranav попробуйте этот comboProject.DataSource = ds.Tables[«FillDropDown»]. DefaultView; комбинированный проект. DisplayMember = «имя»; comboProject.ValueMember = «идентификатор»;

2. на самом деле я пробовал .. просто удалив имя таблицы из элемента отображения и значения, оно работает нормально .. но почему это так .. в любом случае спасибо