前提是如果不增加数据库的表示字段,通过全局变量之类的可以实现吗?
要是只有两个用户这个方法还可以,要是多个用户呢?
比如用户甲在操作数据1,其他的人就不可以操作了,但是其他的人可以去操作别的记录,但是也要在同一时刻保障只有一个人能操作
类似公共浴池的储藏柜了,后来的只能寻找空的,没人操作才可以,
请指点

解决方案 »

  1.   

    另外你要说清楚你的“同一时刻”是什么概念。我假设你理解数据库在执行update命令的时候都是自动使用事务保证行修改是互斥的操作的。我假设你说的同一时刻是像售票系统那样的事务。
      

  2.   

    哦,假设你通过 System.Data.OleDB 命名空间使用Access,要注意一切修改操作也要使用 OleDbTransaction。Access数据库从十几年前就支持事务,可是很多人不知道。它并不像SQL Server那样执行命令时自动启动事务,所以需要手动启动事务。事务通常应该在一两秒钟内结束。而对于“类似公共浴池的储藏柜”的业务长事务,使用数据库事务就很傻了。这应该通过业务逻辑来完成。例如“增加数据库的表示字段”就是比较简单的方法之一。
      

  3.   

    这个就是用排它锁了,用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时对同一资源进行多重更新。排它锁:
    排它锁可以防止并发事务对资源进行访问。其它事务不能读取或修改排它锁锁定的数据。