以下是我在CSDN发的提问帖子:
我用adapter+DataSet填充数据源绑定datalist,进行添加删除修改后绑定datalist,但是操作进行后需要刷新或者再执行一次操作才能看到上一次的操作效果,而用DataReader直接就可以看到执行效果,不知道是为什么.代码如下:
adapter+dataSet绑定:
ICollection CreateSource()
{
int StartIndex;
//设定倒入的起终地址
StartIndex = CurrentPage * PageSize;
string strSel = "select * from Message order by id desc";
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(strSel,con);
da.Fill(ds, StartIndex, PageSize, "Message");
return ds.Tables[0].DefaultView;
}
public void ListBind()
{
this.DataList1.DataSource = CreateSource();
this.DataList1.DataBind();
}
dataReader绑定:
cmd.CommandText = "select * from Message order by id desc";
OleDbDataReader sdr = cmd.ExecuteReader();
this.DataList1.DataSource = sdr;
this.DataList1.DataBind();
执行代码:
public void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
if(e.CommandName=="deleteBt")
{
int id =(int)this.DataList1.DataKeys[e.Item.ItemIndex];
OleDbConnection con = DB.createCon();
con.Open();
OleDbCommand cmd = new OleDbCommand("delete from Message where id="+id+"",con);
cmd.ExecuteNonQuery();
ListBind();
con.Close();
}
}
很多人也在疑惑这个问题.不会真是vs2005的bug吧.在2003里面是不存在这个问题的,我不想再在这个问题上浪费更多时间了.反正我现在研究也研究不出什么来.希望已经解决此问题的人帮忙给个答案