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#写聊天程序系列笔记(二)访问Mysql数据库

C#对Mysql数据库的操作示例
  • jianxia_wzx
  • jianxia_wzx
  • 2013年12月03日 23:51
  • 1066

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

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

c#基于socket编程实现简单多人聊天程序

首先直接上代码链接,欢迎修改与指正:https://github.com/yinyoupoet/chatRoomTest 代码、可运行程序、详细设计文档、使用说明等都在里面啦然后再上图你们感受下: ...
  • qq_32623363
  • qq_32623363
  • 2017年06月06日 21:44
  • 4649

怎样用SQL语句对数据库表进行加锁和解锁?

       锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。 我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象。即如果没有锁定且多个用户同时...
  • gz2008gz
  • gz2008gz
  • 2010年03月20日 09:29
  • 30444

数据库加锁 如何对行 表 进行加锁

1 如何锁一个表的某一行 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT * FROM table ...
  • u013597888
  • u013597888
  • 2015年02月26日 09:43
  • 253

Python操作主流数据库

操作MySQL1)Windows中安装python和pycharm 2)ubuntu中安装python和pycharm 安装步骤不做赘述,pycharm运行脚本#!/usr/bin/env pyt...
  • songjianyue12345
  • songjianyue12345
  • 2017年12月02日 14:08
  • 523

加锁进行数据库更新

首先,多用户并发修改同一条记录时,肯定是后提交的用户将覆盖掉前者提交的结果了。 这个直接可以使用加锁机制去解决,乐观锁或者悲观锁。 乐观锁,就是在数据库设计一个版本号的字段,每次修改都使其+1,这...
  • zlging309
  • zlging309
  • 2013年07月18日 17:29
  • 888

C# socket 局域网聊天程序的一点心得

C# socket 局域网聊天程序的一点心得 (一)服务器与客户端的关系 1、服务器开启监听服务        服务器使用特定的端口不停的监听来自客户端的消息。(开启一个新线程进行监听)。 2、监听...
  • AwakeningWolf
  • AwakeningWolf
  • 2015年08月01日 10:11
  • 1857

c#实现类似QQ的简单聊天程序,可支持广域网。

该c#程序是用TCP实现的可局域网聊天程序,也可以广域网聊天程序。
  • qywl2014
  • qywl2014
  • 2017年09月04日 13:06
  • 591

C#中使用存储过程的详细步骤

看了存储过程,试了好几次都没有成功,在网上
  • wangjinyang_123
  • wangjinyang_123
  • 2014年05月16日 13:55
  • 787
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#编写聊天程序系列笔记(三)数据库加锁操作
举报原因:
原因补充:

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