谁有在 asp.net 中使用 SQL Server 锁的例子?

暗石绿 2004-07-21 09:42:58
同一条记录,如果 A 和 B 同时修改的话,自然会有一个人修改不成功。
这个怎么锁定?给 B 提示 A 正在修改。
同一条记录,如果 A 在修改或察看,B却把此纪录删除掉了。
这就造成数据的混乱。
这个怎么锁定?给 B 提示A 正在使用此纪录?
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
twofish 2004-07-21
  • 打赏
  • 举报
回复
这个方法如何:
1.在表中加三个字段user(用户名称), sessionid(session id), entertime(开始修改时间)三个字段。
当a用户进入修改的时候把这三个字段填上值。比如
update abcd set user='xxxx..',sessionid='xxxx..', entertime='2004-10-10'
where (user is null or user=[你自己]) and 其他条件
如果返回<=0,说明已经有人在修改了,你可以从数据库中读取这个用户,然后提示
2.在保存、取消保存的时候
update abcd user=null,sessionid=null, entertime=null where 其他条件
3.为了解决有的用户没有保存就退出(比如关闭浏览器)的情况。在数据库中写一个job(定时运行的),内容大概如下:
update abcd user=null,sessionid=null, entertime=null where
DATEDIFF(minute, entertime, getdate()) > 10
上面的内容是说:如果开始修改时间离现在大于10分钟,就清除这个锁定
------------------------
以上方法的不好的地方:
1)不能完全保证没有冲突。比如:a用户进入某个修改页面10分后,别人就可以访问了
2)数据库的job运行的周期不能太小,否则会影响数据库的性能。如果周期太长,又很难解决
一个用户锁定数据(比如关闭浏览器)的问题。所以一个是要得到一个较适合的数据,第二要用户之间沟通
wildfishchin 2004-07-21
  • 打赏
  • 举报
回复
主表的数据,加一个字段,时间戳,进入的时候先获取时间戳,提交的时候,判断时间戳是否改变,如果没有改变更新数据,同时更新时间戳。
活靶子哥哥 2004-07-21
  • 打赏
  • 举报
回复
搜索(MS-SQL Server 基础类)
作者: 关键字:锁

时间:2004年数据
最新:28篇 1

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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