文章教程

19.5搭建系统数据库

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

从本节开始搭建系统数据库,将上传后的数据存储在专用数据库中。这样,不但可以方便对数据进行管理,而且可以预留扩展接口,方便日后对系统进行升级处理。

本实例采用SQL Server 2005数据库,命名为“tuwen”,由系统上传数据信息表“File”构成。File的设计结构如表19-1所示。

表19-1 系统上传数据信息表“File”构成

字 段 名 称

数 据 类 型

是 否 主 键

默 认 值

功 能 描 述

ID

int

递增1

编号

Title

varchar(200)

Null

用户名

Url

varchar(255)

Null

密码

Type

varchar(50)

Null

标识状态

Size

int

Null

大小

CreateDate

datetime

Null

上传时间

本实现应用程序的数据库访问层由文件ssssss.cs实现,其主要功能是在ASPNETAJAXWeb. AjaxFileImage空间中创建FileImage类,并实现对上传文件在数据库中的处理。文件ssssss.cs的实现过程如下。

(1)定义FileImage类,主要实现代码如下。

using System;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
namespace ASPNETAJAXWeb.AjaxFileImage
{
  public class FileImage
  {
    public FileImage()
    {
    ……
    }

(2)获取上传文件信息,即获取系统数据库中已上传的文件信息。该功能由方法GetFiles()实现,实现代码如下。

public DataSet GetFiles()
    {  //获取连接字符串
     string connectionString=ConfigurationManager.ConnectionStrings ["SQLCONNECTIONSTRING"]. Connection String;
     //创建连接
     SqlConnection con = new SqlConnection(connectionString);
     //创建SQL语句
     string cmdText = "SELECT * FROM [File]";
     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;
    }

(3)添加上传文件信息

添加上传文件信息即将新上传的文件添加到系统数据库中。该功能是由方法AddFile(string title,string url,string type,int size)实现的,主要实现代码如下。

public int AddFile(string title,string url,string type,int size)
    {  //获取连接字符串
      string connectionString=ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"] onnectionString;
      SqlConnection con = new SqlConnection(connectionString);
      //创建SQL语句
      string cmdText = "INSERT INTO [File](Title,Url,[Type],[Size],CreateDate)VALUES(@Title,@Url,@Type,@ Size, 
      GETDATE())";
      //创建SqlCommand
      SqlCommand cmd = new SqlCommand(cmdText,con);
      //创建参数并赋值
      cmd.Parameters.Add("@Title",SqlDbType.VarChar,200);
      cmd.Parameters.Add("@Url",SqlDbType.VarChar,255);
      cmd.Parameters.Add("@Type",SqlDbType.VarChar,50);
      cmd.Parameters.Add("@Size",SqlDbType.Int,4);
      cmd.Parameters[0].Value = title;
      cmd.Parameters[1].Value = url;
      cmd.Parameters[2].Value = type;
      cmd.Parameters[3].Value = size;
      int result = -1;
      try
      { 
        con.Open();
        result = cmd.ExecuteNonQuery();
      }
      catch(Exception ex)
      {  //抛出异常
        throw new Exception(ex.Message,ex);
      }
      finally
      {  //关闭连接
        con.Close();
      }
      return result;
    }

(4)删除上传文件信息

删除上传文件信息即将系统中已上传的文件从系统数据库中删除。该功能是由方法DeleteFile(int fileID)实现的,主要实现代码如下。

    public int DeleteFile(int fileID)
    { 
      string connectionString = ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTR ING"].Connection String;
      SqlConnection con = new SqlConnection(connectionString);
      //创建SQL语句
      string cmdText = "DELETE [File] WHERE ID = @ID";
      SqlCommand cmd = new SqlCommand(cmdText,con);
      //创建参数并赋值
      cmd.Parameters.Add("@ID",SqlDbType.Int,4);
      cmd.Parameters[0].Value = fileID;
      int result = −1;
      try
      {
        con.Open();
        //操作数据
        result = cmd.ExecuteNonQuery();
      }
      catch(Exception ex)
      {  //抛出异常
        throw new Exception(ex.Message,ex);
      }
      finally
      {  //关闭连接
        con.Close();
      }
      return result;
    }
  }
}

由此可见,数据库工作看似比较简单,其实很有技术含量。合理的数据库设计是一个项目是否高效的基础。在此阶段,编程人员需谨慎,考虑周全,因为数据库表设计得是否合理,直接关系到后期编码的方便性。

教程类别