2013-03-16 2 views
0

Я создаю программу winform, которая загружает данные из базы данных доступа ms в мой список. когда я нажимаю на свой элемент, который я хочу обновить в базе данных и источнике данных в своем списке, и нажмите кнопку обновления, элемент просто не будет обновляться в первый раз, но второй делает (на том же элементе), поэтому каждый раз мне нужно изменить мои данные, я должен выбрать свой элемент и дважды нажать кнопку обновления. это сумасшедший лол ..ListBox datasource не обновляется при первом нажатии

private void buttonUpdate_Click(object sender, EventArgs e) 
    { 
     //update the database 
     OleDbDataAdapter cmd = new OleDbDataAdapter(); 
     cmd.UpdateCommand = new OleDbCommand("UPDATE Item SET ITEM = @ITEM, ITEM_DESC = @ITEM_DESC WHERE ID = @ID",GetConnection()); 
     cmd.UpdateCommand.Parameters.AddWithValue("@ITEM", textBoxITEM.Text); 
     cmd.UpdateCommand.Parameters.AddWithValue("@ITEM_DESC", textBoxITEMDESC.Text); 
     cmd.UpdateCommand.Parameters.AddWithValue("@ID", Convert.ToInt32(textBoxID.Text)); 
     cmd.UpdateCommand.ExecuteNonQuery(); 

     // update the datasource 
     _productlist.Clear(); 
     listBox1.DataSource = null; 
     listBox1.Items.Clear(); 
     Fill(); 
     listBox1.Update(); 
    } 

основная вещь, что произошло:

  1. загрузки данных в ListBox с DataBind в текстовом поле
  2. нажмите пункт на моем ListBox и изменять данные из текстового поля
  3. нажмите update для обновления базы данных и источника данных
  4. datasource не обновляется в первый раз, но база данных обновляется
  5. повтор no.2
  6. повтор no.3
  7. DataSource обновленный

, что я хочу:

  1. нагрузки данных в ListBox с DataBind в текстовом поле
  2. нажмите пункт на моем ListBox и изменить данные из текстового поля
  3. нажмите кнопку «Обновить», чтобы обновить базу данных и источник данных
  4. dat обновлен источник и база данных

как исправить эту ошибку в моем приложении? пожалуйста, дайте мне знать, если я должен быть более ясным ..

ответ

0

я просто изменить

// update the datasource 
_productlist.Clear(); 
listBox1.DataSource = null; 
listBox1.Items.Clear(); 
Fill(); 
listBox1.Update(); 

на это ..

// update the datasource 
_productlist.Clear(); 
listBox1.DataSource = null; 
System.Threading.Thread.Sleep(500); 
Fill(); 
Смежные вопросы