问一个并发的问题。两个用户先后执行insert操作,如何提示第二个用户已有人插入数据?
两个用户先后执行insert操作,如何提示第二个用户已有人插入数据?
数据库表针对每一个业务只能有一条记录,两个用户在不同客户端进行插入操作,如何解决并发?是在数据库方面考虑还是在代码中进行操作?
谢谢!
[解决办法]
最好不要自己去控制锁,这些都是由SQL数据库自动管理的,除非你非常牛,不然你写的锁的效率不会比MS的自动管理效率好的。对于insert操作,不用提示第二个用户,时间确实是很短的,除非你插入的是数据十分复杂,可以用Transcation,如果你需要保证每一个业务只能有一条记录,程序就判断一下insert前是否有数据,然后再用事务控制insert就可以了。其余的交给SQL Server了。
[解决办法]
参考Optimistic Currency方面的内容。
配置数据源的时候不用过开发式并发的选项吗?选择它。然后在FormView.ItemInserted, DetailsView.IntemInserted里捕捉异常。