如何对表中的一条记录进行锁定,它用户无法进行修改,但允许自己更新。适当的时候还要进行解锁

ximomomoxinei22 2012-01-12 04:11:46
要实现的功能是=>
用户点击datagridview某一行时,能取到相应的id,这时候我想对表中该id对应的那行数据进行锁定,目的是不允许其它用户update,但允许自己update。
当用户点击datagridview其它行的时候(或者直接关闭页面时又或者...反正是要执行解锁的情况),这时要对上次点击那条记录进行解锁(就是指上次点击datagridview的那条记录)。

这个功能应该怎么实现最合适呢?
...全文
220 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 2012-01-12
  • 打赏
  • 举报
回复
单独用一个表处理.
ximomomoxinei24 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xs0573 的回复:]
那要问问领导是想自己锁定不让其他人更新,还是怕更新结果出错
如果是后者的话,在更新后直接刷新下数据,让领导看到结果就好了
[/Quote]
我想知道数据库中的某条记录发生变化 会通知给我的程序 这种技术怎么实现?是触发器的功能么?
xs0573 2012-01-12
  • 打赏
  • 举报
回复
那要问问领导是想自己锁定不让其他人更新,还是怕更新结果出错
如果是后者的话,在更新后直接刷新下数据,让领导看到结果就好了
ximomomoxinei24 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xs0573 的回复:]
楼主为什么需要实现这个功能呢
[/Quote]
因为领导想实现类似这个功能 但是没有说的太清楚 这个需求是我根据现阶段软件做成的样子的基础上想出来的 估计和他当初的预想不一样了 我也感觉在现有程序基础上实现这个功能有些别扭!!
xs0573 2012-01-12
  • 打赏
  • 举报
回复
楼主为什么需要实现这个功能呢
唐诗三百首 2012-01-12
  • 打赏
  • 举报
回复
需求可实现,但不太合理,可能引起其他问题.

建议再确认清楚, 非做不可的话,可以用加事务的方法.
勿勿 2012-01-12
  • 打赏
  • 举报
回复
没那个必要吧 到时候会很麻烦的哦。
ximomomoxinei24 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xs0573 的回复:]
如果你确定需要的话,在表里面增加一列,默认是0
如果某一行需要锁定修改,就先判定下该列是否为0,如果不是,就无法修改
如果不是就改为1,等到锁定结束后改为0
[/Quote]
这种方法挺简单 但有时可能因为异常什么的导致一条记录始终锁定而没有解锁 细想想如果想做 麻烦事还是不少的
xs0573 2012-01-12
  • 打赏
  • 举报
回复
如果你确定需要的话,在表里面增加一列,默认是0
如果某一行需要锁定修改,就先判定下该列是否为0,如果不是,就无法修改
如果不是就改为1,等到锁定结束后改为0
ximomomoxinei24 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 maco_wang 的回复:]
如果两个用户都对同一条数据进行了锁定,如何处理?
[/Quote]
谁先锁定就是谁的

其实点击左侧的datagridview时 右侧就自动呈现该行的一些数据 可以直接进行编辑 当用户1点击gridview某一行的时候 他是可以随意更改提交的
当然其它用户也可以点击该行数据进行查看 只是在锁定期间不允许他进行提交操作
叶子 2012-01-12
  • 打赏
  • 举报
回复
如果两个用户都对同一条数据进行了锁定,如何处理?
ximomomoxinei24 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 acherat 的回复:]
你这没必要吧!有记录的话顶多也就修改和删除,直接写修改和删除的动作就可以了。
[/Quote]
其实我也在考虑这个功能是不是有必要..
AcHerat 元老 2012-01-12
  • 打赏
  • 举报
回复
你这没必要吧!有记录的话顶多也就修改和删除,直接写修改和删除的动作就可以了。

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧