期末Web大作业图书管理系统(.net&C#)

1,235 阅读3分钟

视频演示

视频链接

一、实验目的

在VisualStudio开发平台,运用C#语言进行Web端开发,能够熟练使用并掌握.NET开发工具。

二、设备与环境

(1) 硬件设备:PC机一台 (2) 软件环境:Windows操作系统,数据库管理系统Mysql, VisualStudio等。

三、实验内容

1.需求分析:

图书馆作为大学中同学们主要利用的场所,必定会是最繁忙的地方。当图书档案由人看管,登记,修改,增删,查询时,效率低,而且容易出错,数据不安全,并且时间很久之后数据量增加会导致数据检索困难等诸多问题。当图书馆发展后,过多的数据使图书馆管理问题凸显。我们编写程序用于图书馆信息管理、图书借阅、图书登记、用户登记、新增和删减图书等服务项目,利用这些技术可以提高图书馆工作效率,使图书馆给同学们提供更好的服务,是系统开发的主要目的。

2.逻辑结构:

本系统总共涉及了多个界面,包括登陆、注册、管理员对人员、图书的增删改查。用户对自己借阅图书的增删改查,以及对个人信息的修改。 数据库中总共使用了4张数据表,分别为用户表(表中falg属性若为1是管理员为0是普通用户),用户借阅表,书籍分类表,书籍表。

3.系统设计

(1)系统E-R图

在这里插入图片描述

(2)系统框架图

在这里插入图片描述

4.项目演示 (1)管理员主界面展示

在这里插入图片描述

(2)用户主界面展示

在这里插入图片描述

(3)管理员图书管理界面

在这里插入图片描述

(4)用户管理界面

在这里插入图片描述

(5)管理员书籍管理界面 在这里插入图片描述

(6)用户登陆和注册:

在这里插入图片描述

(7)更改用户信息

在这里插入图片描述

(8)相关程序代码

a.数据库的连接操作
<connectionStrings>
    <add name="MySQLConnectionString" connectionString="server=localhost;user id=root;password=root;persistsecurityinfo=True;database=netcourse" providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>

b.链接MySQL的绑定(举例)

conn = DBOperation.GetMySqlConnection();
                conn.Open();
                MySqlCommand sql = new MySqlCommand();
                sql.Connection = conn;
                sql.CommandText = "select * from user where ID=@ID";
                sql.Parameters.AddWithValue("@ID", ID);
                MySqlDataReader reader = sql.ExecuteReader();

c.用户的登录操作

 public User Login(string userName, string password)
        {
            User user = userDao.queryByID(userName);
            if(user == null)
            {
                Console.WriteLine("userName错了");
                return null;
            }
            else{
                if(user.passWord == password)
                {
                    return user;
                }
                else
                {
                    Console.WriteLine("密码错了");
                    return null;
                }
            }
        }
public User queryByID(String ID)
        {
 //           try
 //           {
                conn = DBOperation.GetMySqlConnection();
                conn.Open();
                MySqlCommand sql = new MySqlCommand();
                sql.Connection = conn;
                sql.CommandText = "select * from user where ID=@ID";
                sql.Parameters.AddWithValue("@ID", ID);
                MySqlDataReader reader = sql.ExecuteReader();
                User user = null;
                if (reader.Read())
                {
                    user = new User(reader.GetString("ID"), reader.GetString("userName"), reader.GetInt32("age"), reader.GetString("passWord"), reader.GetInt32("flag"));
                }
                reader.Close();
                return user;
 //           }
      
        }

d.用户查询(例子):

public List<User> queryByUserName(String userName)
        {
            try
            {
                conn = DBOperation.GetMySqlConnection();
                conn.Open();
                MySqlCommand sql = new MySqlCommand();
                sql.Connection = conn;
                sql.CommandText = "select * from user where userName=@userName";
                sql.Parameters.AddWithValue("@userName", userName);
                MySqlDataReader reader = sql.ExecuteReader();
                List<User> userList = null;
                if (reader.Read())
                {
                    userList = new List<User>();
                    User user = new User(reader.GetString("ID"), reader.GetString("userName"), reader.GetInt32("age"), reader.GetString("passWord"), reader.GetInt32("flag"));
                    userList.Add(user);
                    while (reader.Read())
                    {
                        user = new User(reader.GetString("ID"), reader.GetString("userName"), reader.GetInt32("age"), reader.GetString("passWord"), reader.GetInt32("flag"));
                        userList.Add(user);
                    }
                }
                reader.Close();
                return userList;
            }
            catch (Exception e)
            {
                
                return null;
            }
            finally
            {
                conn.Close();
            }
        }
         

9.数据库相关表信息 a.图书信息表

在这里插入图片描述

b.用户信息表

在这里插入图片描述

c.分类表

在这里插入图片描述

d.借书表

在这里插入图片描述

四、实验结果及分析

本次实验是我入学以来最艰苦的一次,因为在编写过程中对C#语言基本语法没有详细学习过,虽然写法与Java相似度很高但是在实际操作过程中也遇到了不少的困难。在经过大量资料查询的情况下,总算是勉强完成了大部分功能的实现。刚开始着手时,还不会进行数据绑定,后来在网上寻找了教程,一点点的对项目进行修改。 本项目的逻辑结构很简单设计模式还是采用了MVC结构,在设计具体功能的时候也简化了业务逻辑比如户登录的例子,用户在输完ID和密码之后,后台读取用户输入的信息,然后将其值作为SQl查询语句的对象,之后对数据库进行查询操作,若检测结果为真,则用户登录成功,反之登录失败并把提示信息返还到前端界面。 虽然实验完成了,但我在本次实验中也了解到了自己很多不足比如对控件的运用和样式设定方面,我觉得和我平时没有多练习有直接关系。希望以后能更加深入透彻的掌握.NET语言,把这个系统做的更完善一点。