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

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

一:数据库的设计:

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

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

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

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

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

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

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

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

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

use mydb
go
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 ,
)
go
create table Friends
(
Ids int identity primary key,
UserName varchar(50) references Users(UserName),
FriendName varchar(50) references Users(UserName),
State int,
)
go
create 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,
)
go
create table State
(
State int references Users(State),
State varchar(50),
)

二:建立数据集:

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

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

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)根据状态代号查状态名称,返回一行。

上一篇:Appium使用ID进行定位


下一篇:MVC出现错误:系统找不到指定文件(异常来自 HRSULT:0x80070002)