2013-07-30 4 views
0

У меня есть эта функция, которую я использую, чтобы заполнить свой список, но не заполняется. Я тоже не ошибаюсь.Комбинированная коробка не заполняется

public List<string> showStudents() 
     { 
      List<string> list = new List<string>(); 
       string rollno; 
       command = connection.CreateCommand(); //command and connection have been initialized earlier.. 
       command.CommandText = "select RollNo from student"; 
      try 
      {      
       connection.Open();     
       SqlDataReader reader = command.ExecuteReader(); 
       while (reader.Read()) 
       {      
        rollno = reader["RollNo"].ToString(); 
        list.Add(rollno); 
       } 
       reader.Close(); 
       return list; 
      } 
      catch (Exception) 
      { 
       throw; 
      } 
      finally 
      { 
       connection.Close(); 
      } 
     } 
    } 
} 

comboBox.DataSource=showStudents(); 

В чем проблема? Пожалуйста помоги!! Спасибо ..

получили ответ .. :)

foreach(string str in showStudent()) 
{ 
comboBox.Items.Add(str); 
} 
+4

Вы убедились, что читатель фактически возвращать результаты? –

+0

Я. Я сделал. Это обеспечивает правильный результат. – ash

ответ

0

Если возвращает читатель результаты, которые вы должны установить член «DisplayMember» и «ValueMember» на ComboBox, чтобы сказать, какая колонка Combox должна используйте отображаемый текст и значение элемента.

Как это:

comboBox.DisplayMember = "RollNo" 
comboBox.ValueMember= "RollNo" 

Вы можете поставить его сразу же после установки DataSource. Скажите нам, если это поможет.

+0

На самом деле я хочу сделать это только с помощью указанной функции. Можете ли вы рассказать мне, как заполнить combobox, используя fuction, который возвращает значения, как указано выше? – ash

0

Смотрите этот пример пример и попробовать с ур код

string Sql = "select Company_ID,company_name from JO.dbo.Comp"; 
SqlConnection conn = new SqlConnection(connString); 
SqlCommand cmd = new SqlCommand(Sql, conn); 
cmd.CommandType = CommandType.Text; 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{ 

    comboBox1.DataSource = ds.Tables[0]; 
    comboBox1.DataTextField = "company_name"; 
    comboBox1.DataValueField = "Company_ID"; 
    comboBox1.DataBind(); 
    comboBox1.Items.Insert(0, new ListItem("--Select--", "0")); 
} 
Смежные вопросы