首页 > 代码库 > 简单的实现QQ通信功能(一)

简单的实现QQ通信功能(一)

第一部分:数据库的设计,数据集的建立

一:数据库的设计:

1.用户表:包含用户名、密码、昵称、性别、备注、状态、头像代号和最后登录时间。

2.朋友关系表:自增长列为主键列,用户名和好友名,还有朋友的状态。

 

3.聊天内容表:自增长列为主键列,发送者和接收者,中间有聊天内容和发送时间,还有一个标记未读已读的状态。

4. 用户状态表:用户状态表主要是有用户状态和状态名字。

5. SQL数据库内用用查询建立这几个表:

use mydbgo create table Users( UserName varchar(50) primary key, --建主键. Password varchar(50) not null,  --不能为空值. NickName varchar(50), Sex bit, Memo varchar(50), State int, PhotoCode int,  LastLoginTime datetime , )gocreate table Friends( Ids int identity primary key, UserName varchar(50) references Users(UserName),   FriendName varchar(50) references Users(UserName), State int,)gocreate table Chat( Ids int identity primary key, Sender varchar(50) references Users(UserName),   Receiver varchar(50) references Users(UserName), Content text, Time datetime, State int,)gocreate table State (State int references Users(State), State varchar(50),)

 

二:建立数据集:

建立数据集的方式就是先连接到数据库,从数据库中选择需要用到的表拖动至数据集里,之后在使用数据集的时候将适配器的命名空间加上:

using WindowsFormsApplication2.qqdataTableAdapters;

将一些在程序中要用到方法通过添加查询添加进数据集的适配器下。

 

1. Users表里面添加了一些数据访问方法:

(1)GetData()是系统自带查询所有行的方法。

(2)GetDataByUsername(@UserName)是根据用户名查询此行用户数据的方法,返回一行User数据。

(3)GetPhotoCode(@UserName)是根据用户名查头像代号,返回代号。

(4)LoginCheck(@username,@password)根据用户名和密码来查询是否存在,用来进行登录判断。

(5)UpdateLasttimeByCode(@LastLoginTime,@UserName)修改该用户名下的最后登录时间。

(6)UpdateStateByCode(@State,@UserName)修改该用户名下的状态。

2. Friends表里添加了一些数据访问方法:

(1)GetData()是系统自带查询所有行的方法。

(2)GetDataBy(@UserName)根据用户名查询Friend数据,返回多行Friend。

3. Chat表里添加了一些数据访问方法:

(1)GetData()是系统自带查询所有行的方法。

(2)GetDataBySenderAndReceiver(@Sender,@Receiver,@State)根据发送者、接收者和该信息的状态来查找聊天内容,返回多行。

(3)InsertChat(@Sender, @Receiver, @Content, @Time, @State)在数据库里插入一行数据,将聊天内容加入到数据库。

(4)UpdateState(@State ,@Ids)根据聊天内容的序号修改该条内容的状态。

4. State表里添加了一些数据访问方法:

(1)GetData()是系统自带查询所有行的方法。

(2)GetDataBy(@State)根据状态代号查状态名称,返回一行。

 

简单的实现QQ通信功能(一)