使用数据源更新或刷新
问题描述:
我将我的数据从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
更新,我在做什么错在这里?我如何完成这项工作?
答
您好像关闭了DataLoadListBox中的连接。你在button_click中打开它,还是至少在打开代码时打开它?
如果不是您在这里错过了最少的异常处理。如果ExecuteNonQuery抛出一个异常,你现在简单地忽略它。
_Well_,你的问题不是很清楚。请先阅读[常见问题]并[先问] .. – 2013-03-16 18:05:54
对不起,我会编辑我的帖子..谢谢提及.. – Norhayati 2013-03-16 18:15:59