使用数据源更新或刷新

问题描述:

我将我的数据从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

您好像关闭了DataLoadListBox中的连接。你在button_click中打开它,还是至少在打开代码时打开它?

如果不是您在这里错过了最少的异常处理。如果ExecuteNonQuery抛出一个异常,你现在简单地忽略它。