关闭

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

标签: C#聊天线程加锁
2021人阅读 评论(2) 收藏 举报
分类:

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

写锁是神马捏?具体来说就是一种排他锁,当写的时候不允许其他程序写,这样就可以保证数据一致性了。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();


 

注意的是,当加锁完成后一定要解锁啊
4
2

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    近期公告
    我的小说:封天神印
    1、本博客所有原创文章,引用时请指明出处!!!谢谢!!!
    2、博客中涉及的代码如需要请邮件联系 jianxiawzx@126.com
    3、大家看完文章请点击一下文章下面的“顶”支持一下下哈
    个人资料
    • 访问:536325次
    • 积分:8401
    • 等级:
    • 排名:第2325名
    • 原创:292篇
    • 转载:44篇
    • 译文:0篇
    • 评论:195条
    我的长篇巨著:封天神印
    博客专栏