问个关于数据库的问题 如果几个人同时用一个数据库,怎样保证并发操作的问题?比如,A读出数据库里的数据的时候,在A提交修改以前,我不希望B去更改数据库,类似一个“同步”或“锁定”的问题。怎么样解决呢?多谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Application.Lock();……操作数据集……Application.UnLock(); 如果是ASP.Net,在global.asa中! 可以用事务来满足你的要求,因为事务支持 ACID 特性! hoge66,在global.asax文件中应该怎样设置啊?谢谢。morality,我也是觉得可以用事务来做,可是不知道怎样做,可以说详细点吗?谢谢。 create procedure testprocas begin transaction insert_Tran insert………… if (@@error <> 0) begin rollback tranasction insert_Tran end commit transaction insert_Trango slhuang, 我觉得你给的这段程序不能达到我的目的啊。你的程序的意思是把你自己对数据库做的N件事情作为一个transaction,以保证你做的这N件事情要么全部成功,要么全部取消。而我需要的是对N个用户的并发操作的处理。 to 楼主,符合啊。用户最终还不是要对数据库进行操作?打个比方,A用户正在插入数据TABLE1,B用户正在从TABLE1查询数据,假设他们都是在同一个时间,那么B查到的数据是事务后的数据。就是插入后的数据(不管成功与否)。 slhuang,你好像还不太明白我的意思。这么说吧,A读了table1里的数据,然后就去基于这些数据做修改了。这时候,B去修改了table1里的数据,那么,此时table1里的数据其实跟A手里的数据已经不一样了。但是A并不知道,所以,A算完了以后就去往table1里写,这不就乱套了吗? 有个朋友告诉我两个办法,1.用select * for update 读取数据库2.用readonly打开连接,不知道可行吗? 网站访问者记录 ASP.NET文件依赖缓存在网站并发访问的时候失效!! datagrid 双标题问题? Oxite下载了,但不能用啊! 关于如何在datagrid的摸板列里面绑定数据 RDLC报表在谷歌浏览器中无打印按钮? 哪位有简单的方法清空DataGrid 焦点问题 我的ASP.net为什么不能用 有没有JSP.net? 100分 求asp.net 连接池的用法 在datagrid时可以实现共 N 页 当前第 1 页 << [1] 2 3 4 5 >> 下一页 末页 到第 N 页 查看吗?
……操作数据集……
Application.UnLock();
morality,我也是觉得可以用事务来做,可是不知道怎样做,可以说详细点吗?谢谢。
insert…………
if (@@error <> 0)
begin
rollback tranasction insert_Tran
end
commit transaction insert_Trango
1.用select * for update 读取数据库
2.用readonly打开连接,不知道可行吗?