2013-03-16 103 views
1

我將我的數據從ms-access數據庫加載到listbox ..當我點擊我的更新按鈕時,我想要更新或刷新我的listbox datasource。那麼這是我使用的方法的代碼然後調用DataLoadListBox()form_load event,並更新button_click event ..使用數據源更新或刷新

private BindingList<mylist> myList = new BindingList<mylist>(); 

private void DataLoadListBox() 
{ 
    string query = "select * from myItem order by itemname"; 
    OleDbDataAdapter cmd = new OleDbDataAdapter(query, Conn()); 
    DataSet dt = new DataSet(); 
    cmd.Fill(dt, "myItem"); 
    DataTable datTable = dt.Tables[0]; 
    foreach (DataRow dtRow in datTable.Rows) 
    { 
     myList.Add(new mylist() { id = dtRow["ID"].ToString(), itemname = dtRow["itemname"].ToString() }); 
    } 
    mylb.DisplayMember = "itemname"; 
    mylb.DataSource = myList; 
    mylb.ValueMember = "id"; 
    Conn().Close(); 
} 

那麼當textbox文本已經與我想要的東西填補我把它編碼像下面的更新button_click事件

OleDbCommand comm = new OleDbCommand("update myItem set itemname = @itemname where ID = @ID", Conn()); 
comm.Parameters.AddWithValue("@itemname", itemname.Text); 
comm.Parameters.AddWithValue("@ID", itemid.Text)); 
comm.ExecuteNonQuery(); 
// start updating the listbox 
myList.Clear(); 
mylb.DataSource = null; 
mylb.Items.Clear(); 
mylb.Refresh(); 
mylb.Update(); 
mylb.DataSource = myList; 
DataLoadListBox(); 
// none of above working, the listbox datasource not getting update 

問題是我沒有得到我的listbox datasource更新,我在做什麼錯在這裏?我如何完成這項工作?

+0

_Well_,你的問題不是很清楚。請先閱讀[常見問題]並[先問] .. – 2013-03-16 18:05:54

+0

對不起,我會編輯我的帖子..謝謝提及.. – Norhayati 2013-03-16 18:15:59

回答

0

您好像關閉了DataLoadListBox中的連接。你在button_click中打開它,還是至少在打開代碼時打開它?

如果不是您在這裏錯過了最少的異常處理。如果ExecuteNonQuery拋出一個異常,你現在簡單地忽略它。