C#关于同时编辑一条数据的问题

POWER_WONG 2009-03-20 03:10:14
各位兄弟:现在有一个问题,我开发了一个小的系统,使用的是SQL Server2000数据库,可以同时有很多用户使用,我想实现这样的功能:如果某一个用户在编辑一条数据时(例如,一个产品信息),其他用户不可以打开并编辑,并且要收到一条提示信息:这条产品记录正在被谁在编辑中。
给个思路,怎样控制比较好,先谢谢了
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystalsky21504119 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jack86514 的回复:]
1.可以在表中加一个字段,如果这个记录被打开,那么就修改这个字段。
2.在表中加一个版本号的字段,每一次修改号加1,
比较说现在有一个记录,这条记录的版本号字段叫VERSION_NO,假设当前为3(也就表示被修改过三次)
现在A和B用户同时取出这第数据,当其中一个用户保存时,首先判断当前的版本号是不是和自己的版本号一致,如果一致则保存,并且让VERSION_NO加1,就是4了
当另一个用户来保存的时候版本号已经变了,这样就不…
[/Quote]
兄台说的在版本管理上可行,这里楼主意思好像是记录编辑人员唯一,还要收到编辑人员提示信息
crystalsky21504119 2009-03-20
  • 打赏
  • 举报
回复
你可以这样做,在服务器端搞个规定修改的时间,如果该记录被编辑一段时间后状态还未改回来则说明客户端出现了问题,服务器端利用程序控制自动改回状态,像你所说的不通过数据库如果数据量大的话很难控制,楼主考虑一下,仅做参考意见
jack86514 2009-03-20
  • 打赏
  • 举报
回复
1.可以在表中加一个字段,如果这个记录被打开,那么就修改这个字段。
2.在表中加一个版本号的字段,每一次修改号加1,
比较说现在有一个记录,这条记录的版本号字段叫VERSION_NO,假设当前为3(也就表示被修改过三次)
现在A和B用户同时取出这第数据,当其中一个用户保存时,首先判断当前的版本号是不是和自己的版本号一致,如果一致则保存,并且让VERSION_NO加1,就是4了
当另一个用户来保存的时候版本号已经变了,这样就不会成功了,这时就可以给出提示消息了。
POWER_WONG 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 crystalsky21504119 的回复:]
给该记录增加一个状态字段,如正在编辑状态可为忙,没在编辑时为闲,读取是先验证状态字段
不知道楼主是不是这个意思
[/Quote]

你说的这个倒是可行,但如果某个客户端出现断电,死机之类的,这个状态值不会改变,其他的用户就永远得不到可以编辑的权力,我现在就是不使用数据库来控制,而用其他的方法。
moonshineidolon 2009-03-20
  • 打赏
  • 举报
回复
就像你说的这么做
贫僧又回来了 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 crystalsky21504119 的回复:]
给该记录增加一个状态字段,如正在编辑状态可为忙,没在编辑时为闲,读取是先验证状态字段
不知道楼主是不是这个意思
[/Quote]
我就是这么做的,可行!
crystalsky21504119 2009-03-20
  • 打赏
  • 举报
回复
给该记录增加一个状态字段,如正在编辑状态可为忙,没在编辑时为闲,读取是先验证状态字段
不知道楼主是不是这个意思

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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