不需要进数据库,直接在业务层里加锁,需要修改时检查该条数据是否被锁,同时设置超时策略
可以用全局的cache来做
可以用全局的cache来做
解决方案 »
- 关于IIS集成管线模式的问题,求高手···
- 没用过太多版本控制软件,但是用过SVN,实在感觉SVN不好用啊
- B/S TreeView 控件的加载数据的问题。
- membership.CreateUser()方法有4个重载.但是在c#下重载不能实现!
- 针对书上的代码,新手有疑惑!
- 关于DataGird更新时,出现"输入字符串的格式不正确"错误提示,求解!
- 请教:(asp.net+c#)文件下载后,页面无法继续执行,希望给出解决办法的代码。谢谢!
- 请教各位高手:如何在网页显示静态波形图
- 应用不同页面上的控件
- 高手!!!我再用hitm编辑器时候出错阿?
- .Net MVC为何分多个文件夹而不是多个类库?这两种方法有区别吗
- Win7 64位专业版安装Microsoft Visual Studio .NET 2003
而你说的第二种需求,数据表里增加特殊字段来控制用户不能同 时在多地登录,对于这一点,使用事务锁解决不了问题的,我给你个思路,你除了增加现在的字段外,额外添加另外两个字段,比如,再增加一个 锁住人ID , 还增加一个 最近被锁住的时间 这两个字段这时候,你每次在用户请求编辑该行记录前,首先是 判断该行是否被锁住了? 如果被锁住了,则判断 之前锁住它的 锁住人ID 是否与当前请求的用户相同,相同,则允许, 不同? 不同的话,那说明之前锁住这行记录的是别人哦,那么,只能是被锁日期来判断了,比如锁住了2天了,那基本上可以确定之前锁住它的那个用户已掉线了,这时候就可以允许操作了,否则,继续等待吧
再加个锁定人还及锁定时间,因为。你这里加锁的目的是防止多人同时更新,实际上是并发处理。而这种更新所占用的时间一般都不会太长。从画面更改到提交到数据库,一般也就是几分钟的时间。因此,如果上次更新时间和现在的时间相差太大,可以认为上次更新时异常退出。本次可以无视这把“锁”,直接更新数据。