文章教程

21.3搭建数据库

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

本项目使用SQL Server 2005数据库,创建一个名为“Liao”的数据库。该数据库包含了两个表:Message和User分别用于存储聊天内容和用户信息。

系统聊天内容信息表(Message)的具体设计结构如表21-1所示。

表21-1 系统聊天内容信息表

字 段 名 称

数 据 类 型

是 否 主 键

默 认 值

功 能 描 述

ID

int

递增1

编号

Message

varchar(1000)

Null

内容

UserID

int

Null

用户编号

ChatID

int

Null

聊天室编号

CreateDate

datetime

Null

时间

系统用户信息表(User)的具体设计结构如表21-2所示。

表21-2 系统用户信息表

字 段 名 称

数 据 类 型

是 否 主 键

默 认 值

功 能 描 述

ID

int

递增1

编号

Username

varchar(1000)

Null

用户名

Password

int

Null

密码

Status

int

Null

状态

系统参数设置功能由文件Global.asax和文件chat.cs实现。

1.文件chat.cs

文件chat.cs的功能是声明类UserInfo,用以封装保存当前登录用户的信息,并定义数据库访问层的操作方法。文件chat.cs中系统参数设置的实现代码如下。

namespace ASPNETAJAXWeb.AjaxChat
{
  public class UserInfo
  {
    private int userID;
    private int chatID = −1;
    private string username;
    public int ChatID
    {
      get
      {
        return chatID;
      }
      set
      {
        chatID = value;
      }
    }
    public int UserID
    {
      get
      {
        return userID;
      }
      set
      {
        userID = value;
      }
    }
    public string Username
    {
      get
      {
        return username;
      }
      set
      {
        username = value;
      }
    }
  }

2.文件Global.asax

文件Global.asax的功能是:当系统项目启动时,初始化保存处理当前用户列表;当项目结束运行时,将用户列表信息清空。其主要实现代码如下。

  // 保存登录用户的列表
  public static List<UserInfo> Users = new List<UserInfo>();
  void Application_Start(object sender, EventArgs e)
  { //登录用户列表初始化
    Users.Clear();
  }
  void Application_End(object sender, EventArgs e) 
  {
  }
  void Application_Error(object sender, EventArgs e) 
  }
  void Session_Start(object sender, EventArgs e) 
  {
    //
  }
  void Session_End(object sender, EventArgs e) 
  {
    if(Session["UserID"] != null)
    { //用户离开时,清空用户登录的信息
      string userID = Session["UserID"].ToString();
      foreach(UserInfo ui in Users)
      {  //根据用户ID找到离开的用户
        if(ui.UserID.ToString() == userID)
        {
         Users.Remove(ui);
         break;
        }
      }
    }
  }
</script>

通过前面的开发流程可知,Global.asax文件也是一个重要的配置文件,有时也称其为ASP.NET应用程序文件,也提供了一种在一个中心位置响应应用程序级或模块级事件的方法。可以使用这个文件实现应用程序安全性以及其他一些任务。Global.asax位于应用程序根目录下。虽然Visual Studio.NET会自动插入这个文件到所有的ASP.NET项目中,但是它实际上是一个可选文件。删除它不会出问题——当然是在没有使用它的情况下。文件扩展名.asax指出它是一个应用程序文件,而不是一个使用 aspx 的 ASP.NET文件。Global.asax文件被配置为任何(通过URL的)直接HTTP请求都被自动拒绝,所以用户不能下载或查看其内容。ASP.NET页面框架能够自动识别出对Global.asax文件所做的任何更改。在 Global.asax被更改后,ASP.NET页面框架会重新启动应用程序,包括关闭所有的浏览器会话,去除所有状态信息,并重新启动应用程序域。

教程类别