文章教程

21.7客户的新需求

8/31/2020 9:56:04 PM 人评论 次浏览

到此为止,在线聊天系统已经设计完毕了,但是此时客户希望本系统内能有多个聊天室,这样能便于用户有选择性地进行沟通。也就是说做成与QQ类似的聊天系统,进入系统后有多个房间可以进入,即根据不同的用户群体设置对应的聊天室。

根据上述新需求,首先需要在数据库新添加一个表,用于存储聊天室房间的信息。系统聊天室信息表“Chat”的具体设计结构如表21-3所示。

表21-3 系统聊天室信息表(Chat)

字 段 名 称

数 据 类 型

是 否 主 键

默 认 值

功 能 描 述

ID

int

递增1

编号

ChatName

varchar(50)

Null

名称

MaxNumber

int

Null

允许最多在线人数

CurrentNumber

int

Null

当前在线的人数

Status

tinyint

Null

状态

CreateDate

datetime

Null

时间

Remark

varchar(1000)

Null

说明

在文件chat.cs中,与聊天室房间处理模块相关的是方法GetLiaotian(),其运行流程如图21-7所示。

21-7

图21-7 登录验证模块数据访问层运行流程图

方法GetLiaotian()的功能是获取当前系统中所有的聊天室信息,其具体实现过程如下。

(1)从系统配置文件Web.config中获取数据库连接参数,并将其保存在connectionString中。

(2)使用连接字符串创建con对象,实现数据库连接。

(3)新建获取数据库中所有聊天室信息的SQL查询语句。

(4)创建获取数据的对象da。

(5)打开数据库连接,获取查询数据。

(6)将获取的查询结果保存在ds中,并返回ds。

上述功能的对应实现代码如下。

public DataSet GetLiaotian()
   { 
     string connectionString = ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].Connection String;
     SqlConnection con = new SqlConnection(connectionString);
     //创建SQL语句
     string cmdText = "SELECT * FROM Chat Order by CurrentNumber DESC";
     //创建SqlDataAdapter
     SqlDataAdapter da = new SqlDataAdapter(cmdText,con);
     //定义DataSet
     DataSet ds = new DataSet();
     try
     {
       con.Open();
       //填充数据
       da.Fill(ds,"DataTable");
     }
     catch(Exception ex)
     {
       throw new Exception(ex.Message,ex);
     }
     finally
     {
       con.Close();
     }
     return ds;
   }

上述过程体现了模块化设计的好处。在客户要求改变系统时,原来编写的代码可以保持不变,只编写新功能代码即可。这样可以大大提高开发效率。接下来开始聊天室显示界面的设计工作。

教程类别