C#编写聊天程序系列笔记(三)数据库加锁操作

原创 2013年12月04日 00:00:46

因为在实际项目中,会有大量的用户链接数据库并请求各种操作,此时我们就需要对各个请求创建线程进行处理,这时候问题就来了,当大家的请求都涉及到写数据库时候,怎么办?这个时候就要用到数据库的加锁了。具体数据库的加锁知识大家可以百度之大笑,不过这里不需要太多高深的加锁知识,只需要一点就是写锁

写锁是神马捏?具体来说就是一种排他锁,当写的时候不允许其他程序写,这样就可以保证数据一致性了。OK了,这就够了,在程序中怎样对数据库进行加锁呢?

数据库的加锁是在我们写数据库的时候进行的,当然现在很多数据库都自己带了枷锁机制,但是当我们具有大量并发的时候还是自己写着比较好大笑

C#对MySQL进行操作上一篇已经说了,这里直接进行说明怎样进行加锁

代码如下:

 string lockDB = "LOCK TABLE t_userinfo WRITE";
                MySQLCommand sqlcmd = new MySQLCommand(lockDB, conn);
                sqlcmd.ExecuteReaderEx();

                string cmd = "update t_userinfo set F_State = 0 where F_Name= '" + name + "'";
                sqlcmd = new MySQLCommand(cmd, conn);
                sqlcmd.ExecuteReaderEx();

                string UnlockDB = "UNLOCK TABLES";
                sqlcmd = new MySQLCommand(UnlockDB, conn);
                sqlcmd.ExecuteReaderEx();


 

注意的是,当加锁完成后一定要解锁啊
版权声明:本文为博主原创文章,未经博主允许不得转载。

c#解决高并发--加锁(Lock)

private static object sign = new object(); public static DBHelper CreateMapping(string conn...

数据库加锁的知识

关于数据库加锁的知识LockType 属性指示编辑过程中对记录使用的锁定类型。设置和返回值设置或返回以下某个 LockTypeEnum 的值。常量 说明adLockReadOnly 默认值,只读。无法...
  • cspyb
  • cspyb
  • 2007年11月04日 00:18
  • 8633

数据库锁 sql 数据库大并发操作 数据库原子操作

1 前言 数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1...
  • Truong
  • Truong
  • 2013年05月15日 11:00
  • 4353

数据库并发控制 你选乐观锁还是悲观锁?

在这里,我们将讨论的是在实际生产过程中,对于并发控制你是选择乐观锁还是悲观锁。这两种锁各自的应用环境应该怎样选择? 实际生产环境里边,如果并发量不大,完全可以使用悲观锁定的方法,这种...
  • amqvje
  • amqvje
  • 2016年01月10日 04:21
  • 3135

SQL server数据库并发控制--加锁

http://blog.csdn.net/zdplife/article/details/48035837 当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作...

用C语言操作MySQL数据库,进行连接、插入、修改、删除等操作

  很多人用到MySQL来开发一些项目,有时为了性能,我们会直接用C语言来开发相关的模块,尤其在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安...

献给青春的歌 · 致「 腾讯QQ 18 岁」

博主说:在中国为期不长的互联网历史上,太多的 IT 产品如昙花般匆匆一现,腾讯能够走过 18 载春秋,出人意料又在情理之中。但对于我们来说,腾讯QQ 绝并不仅仅只是一个用于聊天的软件而已,因为它更承载...

C#编写聊天程序系列笔记(一)原理

程序采用TCP协议,当然神马是TCP协议呢,大家可以自行百度之。长话短说,为了C#方便使用TCP协议,在 using System.Net.Sockets;里面使用TcpListener类简化了TCP...

改进后的客户端服务器聊天功能,此版本比上版本多了加锁处理,多了客户端数量控制,多了线程join操作

改进后的客户端服务器聊天功能 客户端代码 #include #include #include #include #include #include #include #include ...

C# Socket在连接目标主机成功后的瞬间接、发操作必须要加锁;

如题: C# Socket在连接目标主机成功后的瞬间接、发操作必须要加锁; 经过100~300次的调试次数,该问题,在Win7不会出现,在XP,100%出现,可能也是Socket调用系...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#编写聊天程序系列笔记(三)数据库加锁操作
举报原因:
原因补充:

(最多只允许输入30个字)