2013-12-05 2 views
0

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

string dbConn = "Data  Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\SONY\\Desktop\\FinalYearProject\\FinalYearProject\\bin\\Debug\\housewife.mdf;Integrated Security=True;User Instance=True"; 

void fill_Combo() { 
     SqlConnection conn = new SqlConnection(dbConn); 
     try { 
      conn.Open(); 
      string query = "Select * From Food"; 
      SqlCommand cmd = new SqlCommand(query, conn); 
      SqlDataReader dr = cmd.ExecuteReader(); 
      while (dr.Read()) { 
       string name = dr.GetString(1); 
       comboBox1.Items.Add(name); 
      } 
      conn.Close(); 
     } 
     catch(Exception ex){ 
      MessageBox.Show(ex.Message); 
     } 
    } 
+0

ли вы вызвать метод fill_Combo() после того, как вы вставили новый элемент в базе данных? –

+1

да, я могу назвать его – user3016854

+1

Удалите весь этот ужасный строковый код SQL из кода позади, создайте надлежащий уровень доступа к данным и изучите MVVM, прежде чем писать какую-либо строку кода в WPF. –

ответ

0

Вы должны использовать наблюдаемую коллекцию как источник данных и привязку к этой коллекции. См Add items to comboBox in WPF

0

Привет, пожалуйста, попробовать что-то вроде этого, надеюсь, что это помогает

string dbConn = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\SONY\\Desktop\\FinalYearProject\\FinalYear Project\\bin\\Debug\\housewife.mdf;Integrated Security=True;User Instance=True"; 

void fill_Combo() { 
    SqlConnection conn = new SqlConnection(dbConn); 
    try { 
     conn.Open(); 
     string query = "Select * From Food"; 
     SqlCommand cmd = new SqlCommand(query, conn); 
     SqlDataAdapter da = new SqlDataAdapter(cmd); 
     DataSet ds = new DataSet(); 
     da.Fill(ds) 
     combobox1.DataSourse = ds; 
     combobox1.DisplayMember = "fieldname"; 
     combobox1.ValueMember = "fieldname"; 
    } 
    catch(Exception ex){ 
     MessageBox.Show(ex.Message); 
    } 
} 
Смежные вопросы