首页 新闻 会员 周边 捐助

如何解决MVC多人操作同一个单的问题

0
悬赏园豆:20 [已解决问题] 解决于 2017-08-10 11:18

现有场景是这样的:AB两人同时打开单据X;此时两人都是浏览状态。然后A点编辑按钮,系统记录A锁定单据。A讲X单据某内容由 C改为D 保存,锁定状态清除。  这时候B仍然是浏览状态 B看到的内容仍然是C  然后B点编辑 保存 又将D改为C了。 请问这个问题如何解决?

有想过点击编辑按钮的时候 先刷新 再执行接下来的逻辑比如编辑什么的  但是刷新之后 整个页面都是刷新过的 根本就不会执行接下来的逻辑。求指点。

Nuller的主页 Nuller | 初学一级 | 园豆:115
提问于:2017-07-21 11:43
< >
分享
最佳答案
0

在表中增加一列LAST_UPDATE,当A释放锁的时候触发器更新LAST_UPDATE字段,同时UPDATE语句要加上WHERE LAST_UPDATE=XXX,当B再次更新的时候,由于这个XXX已经被更新或者整条记录都被删,查不出来数据了。这个时候再返回给B,一个友好的提示,比如,亲,您的麒麟臂没有别人的强大哦…………

收获园豆:5
发条青蛙 | 初学一级 |园豆:180 | 2017-07-21 11:54
其他回答(6)
0

  并发问题,看你以那个User 操作为主了

收获园豆:1
飞鱼天山 | 园豆:219 (菜鸟二级) | 2017-07-21 11:51
0

参考下:http://blog.csdn.net/baimin7657/article/details/8062939

1、易用的解决方案给表添加一字段:LAST_UPDATE,即最后更新时间

2、乐观锁, "VERSION

收获园豆:5
开山怪不怪 | 园豆:544 (小虾三级) | 2017-07-21 11:54
0

这事情很简单,你解决不了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-07-21 15:15
0

在lock表之后,修改数据之前,你判断一下页面的数据和现在的数据,某些字段是否一致,如果不一致,说明有改动,一致你再做更新操作呗。

收获园豆:3
让我发会呆 | 园豆:2929 (老鸟四级) | 2017-07-21 17:27
0

1,锁;

2,状态标记(比如时间戳等等)

收获园豆:3
花飘水流兮 | 园豆:13615 (专家六级) | 2017-07-22 19:37
0

在数据库中为数据新增一个字段“LastDate”作为时间戳。

每次提交编辑更新前判断一下时间戳是否改变了,如果改变了说明有人动过了,无法提交。

收获园豆:3
陌陌秋雨 | 园豆:2 (初学一级) | 2017-07-24 16:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册