当前位置:编程学习 > C#/ASP.NET >>

怪问题,是不是程序执行太快,以致于数据库来不及更新就被显示出来了?

ASP.NET中,更新Access数据库(增、删、改),然后把信息显示到datagrid里面:
我先写了更新语句,然后才把数据绑定到datagrid中,奇怪的是datagrid中居然没反应,但数据库里确实是更新了,此时要手动刷新下页面才会显示更新结果...
做了个实验:用单步调试,让时间拖的久些,居然一次就使datagrid更新了,不用再刷新页面;
再次实验:在更新语句和绑定语句前加了一个空循环拖延时间,datagrid又是一次就更新了。
请问各位,这个问题是不是因为程序执行太快,以致于数据库还来不及更新就先被读出绑定到datagrid里啊?这个问题怎么解决呢?难道要另开一个线程延迟执行绑定? --------------------编程问答-------------------- 建议使用DataSet
这样可以直接将内存里的东西显示在页面上
而不会出现上述情况 --------------------编程问答-------------------- 不知道LZ使用哪个控件做数据源会出现这样的情况,方便的话贴一段看看;
蛮奇怪的; --------------------编程问答-------------------- 代码可以show一下. --------------------编程问答-------------------- 确实很奇怪!! --------------------编程问答--------------------
引用 4 楼 JustLovePro 的回复:
确实很奇怪!!
--------------------编程问答-------------------- 搂主如果使用的是datasource数据源控件就会出现以上的问题
--------------------编程问答-------------------- string strSql_1 = "delete from table1 where field0 = " + param_0;
string strSql_2 = "select * from table1";
OleDbConnection oleDbConn = new OleDbConnection(strConn);
OleDbCommand oleDbComm = new OleDbCommand(strSql_1,oleDbConn);
DataView dv = new DataView();
try
{
oleDbComm.ExecuteNonQuery();
        //如果在此处添加空循环,则datagrid可一次更新成功
OleDbDataAdapter oleDbAdp = new OleDbDataAdapter(strSql_2,oleDbConn);
        DataTable dTab = new DataTable();
        oleDbAdp.Fill(dTab);
dv = dTab.DefaultView;
        dataGrid1.DataSource = dv;
        dataGrid1.DataBind();
}
catch(Exception ex)
{
throw new Exception("数据库更新异常:" + ex.Message);
} --------------------编程问答-------------------- 有点奇怪啊,要是有高人指点以下我们就好了啊 --------------------编程问答-------------------- 页面加载代码和其它的事件名一概写上看一看 --------------------编程问答-------------------- 应该是页面缓存的问题. --------------------编程问答-------------------- 楼主是直接绑定数据到控件上的    如果作删除  还需要再绑定一次 也主说再读取一次数据    --------------------编程问答-------------------- 更新之后,datagrid.DataBind(); --------------------编程问答-------------------- 是页面缓存的问题吧 --------------------编程问答-------------------- SQL被缓存了。
在批量写操作前后 Begin Transaction 和 Commit Transaction。

其实楼主的问题就是所谓的Uncommitted Read问题。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,