C# 操作数据库锁定的问题,求解~~~

SungCen 2009-04-01 03:39:40
我想实现这样的功能:
就是我在操作数据库里的某一表时,同时将该表锁定,就是说这个表只能我来操作,别人再来更新删除数据时,是不行的。只有等在我没有在对该表操作时,另外一个人才能对其删除更新。


其实就是同时只能允许一人对表进行更新删除的操作。


求高手们帮忙解答下先~~~~

先谢过~~~
...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dr.Xin 2009-06-03
  • 打赏
  • 举报
回复
我都想知道同样的问题啊~~SELECT * FROM parent WHERE NAME = 'Jones' LOCK IN SHARE MODE;应该放在哪里呢?? 这个是我事务的代码,但运行成功,却没有实现我想要的功能~~
SqlCommand cmd = cn.CreateCommand();
SqlTransaction sqlTransaction = cn.BeginTransaction(System.Data.IsolationLevel.Serializable); // 开启事务
cmd.Connection = cn;
cmd.Transaction = sqlTransaction; // 将事务应用于Command

try
{
// 利用sqlcommand进行数据操作
cmd.CommandText = "SELECT name,age FROM stu WITH (xlock)";

cmd.ExecuteNonQuery();


sqlTransaction.Commit(); // 成功提交


btnup.Enabled = true;
MessageBox.Show("锁定成功!");
}
catch(Exception ex)
{

sqlTransaction.Rollback(); // 出错回滚
btnup.Enabled = false;//继续不可提交;
MessageBox.Show("出错了,大哥!!");

}
llsen 2009-04-01
  • 打赏
  • 举报
回复
select * from table for update
D13ay 2009-04-01
  • 打赏
  • 举报
回复
学习
Roc_Lee 2009-04-01
  • 打赏
  • 举报
回复
数据库中用事务就可以实现了。

begin tran

heyu52 2009-04-01
  • 打赏
  • 举报
回复
如果这个是个编程问题的话那就很简单了

在程序设置一个临时表来记录正在操作的表

在对一个表进行更新前,到这个临时表面去看有没有用户正在编辑你将要更新的表
如果发现没有就通过
否则提示其它的用户正在编辑些表
kkun_3yue3 2009-04-01
  • 打赏
  • 举报
回复
SELECT * FROM parent WHERE NAME = 'Jones' LOCK IN SHARE MODE;
kkun_3yue3 2009-04-01
  • 打赏
  • 举报
回复
ELECT * FROM parent WHERE NAME = 'Jones' LOCK IN SHARE MODE;

110,536

社区成员

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

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

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