2012-02-20 6 views
1

я хочу, чтобы заполнить выпадающий с данными из базы данных при загрузке страницы я написал код, как показано нижезагрузки выпадающий с источником данных

private void QuotationForm_Load(object sender, EventArgs e) 
     { 
      MessageBox.Show("hghjgvhg"); 
      comboboxload(); 
     } 




public void comboboxload() 
     { 

      OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection(connString); 
      oleDbConnection1.Open(); 
      OleDbCommand oleDbCommand1 = new System.Data.OleDb.OleDbCommand("Select jobpk,jobecode from jobcodemastertable",oleDbConnection1); 
      OleDbDataReader reader = oleDbCommand1.ExecuteReader(); 
      DataTable dt = new DataTable(); 
      dt.Columns.Add("jobpk", typeof(int)); 
      dt.Columns.Add("jobcode", typeof(string)); 
      dt.Load(reader); 
      cmbjobcode.ValueMember = "jobpk"; 
      cmbjobcode.DisplayMember = "jobcode"; 
      cmbjobcode.DataSource = dt; 
      oleDbConnection1.Close(); 
     } 

это оленья кожа deturns ошибку или исключение, но оленья кожа загрузить выпадающий с данные значения

ответ

2

Вам может понадобиться, чтобы связать вид DataTable с со списком

cmbjobcode.DataSource = dt.DefaultView; 
1

Вы упускаете метод DataBind

dt.Load(reader); 
cmbjobcode.ValueMember = "jobpk"; 
cmbjobcode.DisplayMember = "jobcode"; 
cmbjobcode.DataSource = dt; 
//here 
cmbjobcode.DataBind(); 
oleDbConnection1.Close(); 
+0

является DataBind данных() является встроенной функцией; –

0

Вы должны вызвать метод DataBind на своем комбо. Вот почему его не заселяют.

+1

В VS2008 у меня нет метода DataBind() в классе ComboBox. Что мне делать вместо этого? –

3

попробовать этот

comboBox1.DataSource = ds.Tables[0]; 
comboBox1.ValueMember = "id"; 
comboBox1.DisplayMember = "name"; 
Смежные вопросы