解决方案 »

  1.   

    1.可以用javascript使页面没有右上角关闭按钮,自己提供一个可以控制有效、无效的按钮给用户用。
    2在页面的 OnUnload 事件里处理回滚。
      

  2.   

    1 画面跳转是迁移的,javascript如何使页面没有右上角关闭按钮?2 页面的 OnUnload 事件无效
      

  3.   

    你无法精确的控制用户的行为,所以你不能单独凭借关闭窗口来判断是否回滚事务。比较可行的办法就是利用asp.net cache来保存一个单位时间里的有效的值,所有相同的编辑动作都要去判断是否有这个值,然后根据情况做相应的操作或提示,从而达到软锁定的目的。
    比如:有一个用户信息表,对这个表要求进行悲观锁。可以在设定一个key值的前缀:"userinfo:"。
    假设当操作者A获取编号为1的用户信息进行编辑时,产生一个key值 "userinfo:1",然后在cache中查找是否有这一key值。如果有,则表明已经有其它的操作者在编辑了,那么提示操作者A。如果没有,把 该 key 值插入缓存,并设定一个合理的有效时间。当操作者没做规定动作退出编辑,那么当cache失效后,这个锁定自然解锁。反之,用户保存或者按规定动作退出后,代码中把该key值从cache中移除。
    稍作修改,这个还可以用于乐观锁。
      

  4.   

    如果 使用cache 所有用户的编辑数据都存在服务器端,会是很大的负担。这个方法不太可行,还有什么好的方法吗?这个运用应该是很常见的
      

  5.   

    建一个锁定数据的表
    进编辑界面的时候手动把编辑数据的id放到这个表里面,这样其它用户就检索不到这个表里面的数据
    至于点关闭按钮的问题,这个后台sql做一个job定时清理吧,这是我的野路子方法PS:sql中的实务功能是为了保证单次操作原子性,不是lz你这种用法哇,建议多看看书