C#图书管理系统 SQL Server(完)

普通用户表

 

管理员表;

图书表:

借书记录表:

普通用户实体类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    //用户类
    public class User
    {
        private int id;                 //用户编号
        private string userName;        //用户名
        private string password;        //用户密码
        private string email;           //用户邮箱
        private string phoneNumber;     //用户手机号

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public string UserName
        {
            get { return userName; }
            set { userName = value; }

        }

        public string Password
        {
            get { return password; }
            set { password = value; }
        }

        public string Email
        {
            get { return email; }
            set { email = value; }
        }

        public string PhoneNumber
        {
            get { return phoneNumber; }
            set { phoneNumber = value; }
            
        }


        public User()
        {

        }
        public User(int id)
        {
            this.id = id;
        }
        public User(string userName)
        {
            this.userName = userName;
            
        }
        public User(string userName,string password)
        {
            this.userName = userName;
            this.password = password;
        }
        public User(string userName, string password,string phoneNumber)
        {
            this.userName = userName;
            this.password = password;
            this.phoneNumber = phoneNumber;
        }


        public User(int id,string userName, string password)
        {
            this.id = id;
            this.userName = userName;
            this.password = password;
        }
        public User(string userName, string password,string email,string phoneNumber)
        {
            
            this.userName = userName;
            this.password = password;
            this.email = email;
            this.phoneNumber = phoneNumber;
        }
        public User(int id,string userName, string password, string email, string phoneNumber)
        {
            this.id = id;
            this.userName = userName;
            this.password = password;
            this.email = email;
            this.phoneNumber = phoneNumber;
        }
    }
}

管理员实体类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    //管理员
    public class Admin 
    {
        private int id;  //管理员编号
        private string adminName;   //管理员名字
        private string password;    //管理员密码

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        public string AdminName
        {
            get { return adminName; }
            set { adminName = value; }
        }
        public string Password
        {
            get { return password; }
            set { password = value; }
        }
        public Admin()
        {

        }
        public Admin(string adminName,string password)
        {
            this.adminName = adminName;
            this.password = password;
        }
        public Admin(int id,string adminName, string password)
        {
            this.id = id;
            this.adminName = adminName;
            this.password = password;
        }

    }
}

 

图书实体类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    public class Book
    {
        private int id;             //图书id
        private string bookName;    //图书名称
        private string author;      //图书作者
        private string iSBN;        //图书ISBN
        private string bookType;    //图书类型
        private object id1;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public string Author
        {
            get { return author; }
            set { author = value; }
        }

        public string BookName
        {
            get { return bookName; }
            set { bookName = value; }
        }

        public string ISBN
        {
            get { return iSBN; }
            set { ISBN = value; }
        }

        public string BookType
        {
            get { return bookType; }
            set { bookType = value; }
        }

        public Book()
        {

        }

        public Book(string bookName, string author, string iSBN, string bookType)
        {
            this.bookName = bookName;
            this.author = author;
            this.iSBN = iSBN;
            this.bookType = bookType;
        }
        public Book(string bookName, string author, string iSBN)
        {
            this.bookName = bookName;
            this.author = author;
            this.iSBN = iSBN;
           
        }

        public Book(int id, string bookName, string author, string iSBN, string bookType) 
        {
            this.id = id;
            this.bookName = bookName;
            this.author = author;
            this.iSBN = iSBN;
            this.bookType = bookType;
            
        }

        public Book(int id)
        {
            this.id = id;
        }
    }
}

数据库操作层

普通用户数据库操作:


//using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Util;
using Model;
namespace Dao
{
    public class UserDao
    {
        //用来显示登陆的用户信息
        public static int id;
        public static string userName;
        public static string password;
        public static string email;
        public static string phoneNumber;

        public UserDao()
        {

        }
        //修改用户
        public int updateUser(User user)
        {
            int x;
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"UPDATE [user] set userName='" + user.UserName + "',password='" + user.Password + "',email='" + user.Email + "',phoneNumber='" + user.PhoneNumber + "'WHERE id='" + user.Id + "'";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            x = sqlCommand.ExecuteNonQuery();
            sqlCon.Close();
            return x;
        }

        //判断用户是否已经被注册
        /// <summary>
        /// 
        /// </summary>
        /// <param name="user"></param>
        /// <returns flag>如果flag==true,表明用户已经注册</returns>
        public Boolean sameUser(User user)
        {
            bool flag = false;    //判断标志
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"SELECT count (*) FROM [user] WHERE userName='" + user.UserName + "'";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            int count = Convert.ToInt32(sqlCommand.ExecuteScalar());
            if (count > 0)
            {
                flag = false;    //表明用户已经注册
            }
            else
            {
                flag = true;
            }
            sqlCon.Close();
            return flag;
        }
        //用户注册
        /// <summary>
        /// 
        /// </summary>
        /// <param name="user"></param>
        /// <returns query>值为1表明注册成功</returns>
        public int  Register(User user)
        {
            int query;      
       
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"INSERT INTO [user](userName,password,email,phoneNumber)
                        " + " VALUES('" + user.UserName + "','" + user.Password + "','" + user.Email + "','" + user.PhoneNumber + "')";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            query=sqlCommand.ExecuteNonQuery();
           
            sqlCon.Close();
            return query;
            
  
        }
        //用户登陆验证
        /// <summary>
        /// 
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <returns flag>flag==true,表明登陆成功</returns>
        public User userLogin(User user)
        {
            User resultUser = null;
            SqlConnection sqlCon;
            sqlCon = DbUtil.getConnection();
            
            sqlCon.Open();
            string sql = "SELECT id,email,phoneNumber FROM [user] WHERE username='" + user.UserName + "' AND password='" + user.Password + "'";
            SqlCommand command = new SqlCommand(sql,sqlCon);
            SqlDataReader reader = command.ExecuteReader();
            if (reader.Read())
            {
                resultUser = new User();
                userName = user.UserName;
                password = user.Password;
                id = (int)reader["id"];
                email = reader["email"].ToString();
                phoneNumber = reader["phoneNumber"].ToString();
            }
            else
            {
                resultUser = null;
            }
            sqlCon.Close();
            return resultUser;
        }
    }
}

管理员数据库操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using Util;
using Model;
using System.Data;

namespace Dao
{
    public class AdminDao
    {

        public SqlConnection sqlCon=DbUtil.getConnection();   //sql server数据库连接
        public SqlDataAdapter sda;    //数据适配器
        public DataSet dataSet = new DataSet();        //数据集
        public DataTable dataTable = new DataTable();   //内存中数据的一个表
        public SqlDataReader SqlDataReader; //sql数据阅读器


        //查询用户
        public DataTable selectUser(User user)
        {
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            string sql = @"SELECT * FROM [user] WHERE userName like '%" + user.UserName + "%' AND email like '%" + user.Email + "%' AND phoneNumber like '%" + user.PhoneNumber + "%'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlCon);
            DataSet ds = new DataSet();
            sda.Fill(ds, "user");   //填充数据集,实质是填充ds中的第0个表
            DataTable dt = ds.Tables["user"];
            return dt;//返回数据中的表
        }

        //修改用户
        public int updateUser(User user)
        {
            int x;
            sqlCon.Open();
            string sql = @"UPDATE [user] set userName='"+user.UserName+"',password='"+user.Password+"',email='"+user.Email+"',phoneNumber='"+user.PhoneNumber+"'WHERE id='"+user.Id+"'";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            x = sqlCommand.ExecuteNonQuery();
            sqlCon.Close();
            return x;
        }

        //删除用户
        public int deleteUser(User user)
        {
            int x;      //删除成功返回1

            sqlCon.Open();
            string sql = @"DELETE FROM [user] WHERE id='"+user.Id+"'";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
           x= sqlCommand.ExecuteNonQuery();
            sqlCon.Close();
            return x;
        }

        数据集跟新与数据库相一致
        //public void upGridView()
        //{
        //    sqlCon = DbUtil.getConnection();
        //    sqlCon.Open();
           
        //    SqlCommandBuilder builder = new SqlCommandBuilder(sda);
            
        //    dataTable = dataSet.Tables["user"];
        //    sda.Update(dataTable);
        //    dataTable.AcceptChanges();
        //    sqlCon.Close();
        //}
        //显示所有用户信息                                        
        public DataTable fill()
        {
            dataTable.Clear();
            string sql = @"SELECT id,userName,password,email,phoneNumber FROM [user]";
            
            sda = new SqlDataAdapter(sql, sqlCon);
            //填充数据集,实质是填充数据集中的第0个表
            DataSet ds = new DataSet();
            sda.Fill(ds, "user");
            DataTable dt = ds.Tables["user"];
            return dt;
        }

        //管理员登陆
        public Boolean adminLogin(string adminName, string password)
        {
            bool flag = false;
            SqlDataReader reader = null;
            sqlCon.Open();
            try
            {
                string sql = "SELECT * FROM [admin] WHERE adminName='" + adminName + "' AND password='" + password + "'";
                SqlCommand command = new SqlCommand(sql, sqlCon);
                 reader = command.ExecuteReader();
                if (reader.Read())
                {
                    flag = true;
                }
                else
                {
                    flag = false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                reader.Close();
                sqlCon.Close();

            }
            return flag;
        }
    }
}

图书数据库操作:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Model;
using Util;

namespace Dao
{
    public class BookDao
    {
        //归还图书
        public int deleteBook(int id)
        {
            int x;
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"DELETE FROM [borrow] WHERE id='" + id + "'";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            x = sqlCommand.ExecuteNonQuery();
            sqlCon.Close();
            return x;
        }

        //查询已经借阅的图书
        public DataTable selectBorrowBook(User user)
        {
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            string sql = @"SELECT id,bookName,author,ISBN,bookType FROM [borrow] WHERE userName='"+user.UserName+"'";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlCon);
            DataSet ds = new DataSet();
            sda.Fill(ds, "borrow");   //填充数据集,实质是填充ds中的第0个表
            DataTable dt = ds.Tables["borrow"];

            return dt;//返回数据中的表
        }
        //借阅图书
        public  int borrowBook(User user,Book book)
        {
            int x;
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"INSERT INTO [borrow](userName,bookName,author,ISBN,bookType)"+ "VALUES ('" + user.UserName + "','"+book.BookName+ "','" + book.Author + "','" + book.ISBN + "','" + book.BookType + "')";
            //string sql = @"SELECT b.bookName,b.author,b.ISBN,b.bookType FROM book b ";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            x = sqlCommand.ExecuteNonQuery();
            sqlCon.Close();
            return x;
        }

        //从数据库中读取数据
        public DataTable fill()
        {
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            string sql = @"SELECT * FROM [book]";
            SqlDataAdapter sda = new SqlDataAdapter(sql, sqlCon);
            DataSet ds = new DataSet();
            sda.Fill(ds, "book");   //填充数据集,实质是填充ds中的第0个表
            DataTable dt = ds.Tables["book"];
            return dt;//返回数据中的表
        }

        //删除图书
        public int deleteBook(Book book)
        {
            int x;
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"DELETE FROM [book] WHERE id='" + book.Id + "'";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            x = sqlCommand.ExecuteNonQuery();
            sqlCon.Close();
            return x;
        }

       //查询图书
        public DataTable selectBook(Book book)
        {
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            string sql = @"SELECT * FROM [book] WHERE bookName like '%"+book.BookName+"%' AND author like '%"+book.Author+"%' AND ISBN like '%"+book.ISBN+ "%' AND bookType like '%" + book.BookType + "%'";
            SqlDataAdapter sda = new SqlDataAdapter(sql,sqlCon);
            DataSet ds = new DataSet();
            sda.Fill(ds, "book");   //填充数据集,实质是填充ds中的第0个表
            DataTable dt = ds.Tables["book"];
            return dt;//返回数据中的表
        }

        //更新图书
        public int updateBook(Book book)
        {
            int x;
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"UPDATE [book] set bookName='" + book.BookName + "',author='" +book.Author + "',ISBN='" + book.ISBN + "',bookType='" + book.BookType + "'WHERE id='" + book.Id + "'";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            x = sqlCommand.ExecuteNonQuery();
            sqlCon.Close();
            return x;
        }

        //添加图书
        public int addBook(Book book)
        {
            int x;
            SqlConnection sqlCon = null;
            sqlCon = DbUtil.getConnection();
            sqlCon.Open();
            string sql = @"INSERT INTO [book](bookName,author,ISBN,bookType)
                        " + " VALUES('" + book.BookName + "','" + book.Author + "','" + book.ISBN + "','" + book.BookType + "')";
            SqlCommand sqlCommand = new SqlCommand(sql, sqlCon);
            x = sqlCommand.ExecuteNonQuery();

            sqlCon.Close();
            return x;
        }
    }
}

视图层:

登陆界面及其功能实现:

代码如下:

using Model;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Util;
using Dao;
namespace WindowsFormsApp1
{
    public partial class LoginForm : Form
    {
        

        public LoginForm()
        {
            InitializeComponent();
            cboType.Text = "请选择";
            cboType.SelectedIndex = 0;
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //获取文本框的内容
            string userName = userNameTxt.Text;
            string password = passwordTxt.Text;
            string adminName = userNameTxt.Text;

            
            if (stringUtil.isEmpty(userName))
            {
                MessageBox.Show("用户名不能为空!");
                return;
            }
            if (stringUtil.isEmpty(password))
            {
                MessageBox.Show("密码不能为空!");
                return;
            }
            //实例化用户
            User user = new User(userName, password);
            //实例化管理员
            Admin admin = new Admin(adminName, password);
            if (stringUtil.isNotEmpty(userName) && stringUtil.isNotEmpty(password))
            {
                if (cboType.Text == "普通用户")
                {
                    UserDao userDao = new UserDao();
                    if (userDao.userLogin(user)!=null)
                    {
                        MessageBox.Show("普通用户登陆成功!!!");
                        //UserMainForm userMainForm = new UserMainForm();
                        //userMainForm.Show();
                        UserForm userForm = new UserForm();
                        userForm.Show();
                        this.Hide();
                    }
                    else
                    {
                        MessageBox.Show("普通用户登陆失败!!!");
                    }

                }
                if (cboType.Text == "管理员")
                {
                    AdminDao adminDao = new AdminDao();
                    if (adminDao.adminLogin(admin.AdminName, admin.Password))
                    {
                        MessageBox.Show("管理员登陆成功!!!");
                        AdminForm adminForm = new AdminForm();
                        adminForm.Show();
                        //AdminMainForm adminMainForm = new AdminMainForm();
                        //adminMainForm.Show();
                        this.Hide();
                    }
                    else
                    {
                        MessageBox.Show("管理员登陆失败!!!");
                    }
                }
                if (cboType.Text == "请选择")
                {
                    MessageBox.Show("请选择用户类型");
                }
            }
        }
        //重置文本框
        private void button2_Click(object sender, EventArgs e)
        {
            userNameTxt.Text = "";
            passwordTxt.Text = "";
        }

        //跳转注册界面
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            
            RegisterForm rs=new RegisterForm();
            this.Hide();
            rs.Show();
        }

        private void LoginForm_Load(object sender, EventArgs e)
        {

        }

    }
}

 

注册界面及其功能实现:

 

 

代码如下:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Util;
using Dao;
using Model;
using System.Text.RegularExpressions;


namespace WindowsFormsApp1
{
    public partial class RegisterForm : Form
        
    {
        UserDao userDao = new UserDao();
      
        public RegisterForm()
        {
            InitializeComponent();
        }



        //用户注册按钮事件触发
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            
            //获取文本框中的值
            string userName = userNameTxt.Text;
            string password = passwordTxt.Text;
            string checkPassword = checkpasswordTxt.Text;
            string email = emailTxt.Text;
            string phoneNumber = phoneNumberTxt.Text;
            if (stringUtil.isEmpty(userName))
            {
                MessageBox.Show("用户名不能为空");
                return;
            }
            if (stringUtil.isEmpty(password)&& stringUtil.isEmpty(checkPassword))
            {
                MessageBox.Show("密码不能为空");
                return;
            }
            if (stringUtil.isEmpty(email))
            {
                MessageBox.Show("邮箱不能为空");
                return;
            }
            //利用正则表达式判断邮箱是否符合格式
            if(Regex.IsMatch(email, @"[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?") == false)
            {
                MessageBox.Show("请输入正确的邮箱格式");
                return;
            }
            if (stringUtil.isEmpty(phoneNumber))
            {
                MessageBox.Show("手机号不能为空");
                return;
            }
            //利用正则表达式判断手机号码是否符合格式
            if (Regex.IsMatch(phoneNumber, "[0-9]{11,11}") == false)
            {
                MessageBox.Show("手机号格式不正确");
                return;
            }
            if (password != checkPassword)
            {
                MessageBox.Show("密码不一致,请重新输入");
            }
            User user = new User(userName,password,email,phoneNumber);//将文本框中的数据传入用户对象
            if (userDao.sameUser(user)==true)  //判断用户是否存在以及注册事件
            {
                int x = userDao.Register(user);         //返回查询值
                if (x == 1)
                {
                MessageBox.Show("注册成功");
                LoginForm loginForm = new LoginForm();
                loginForm.Show();
                this.Hide();

                }
            }
            else
            {
                MessageBox.Show("用户已存在,注册失败");
            }
        }
        //重置事件触发
        private void button2_Click(object sender, EventArgs e)
        {
            userNameTxt.Text = "";
            passwordTxt.Text = "";
            checkpasswordTxt.Text = "";
            emailTxt.Text = "";
            phoneNumberTxt.Text = "";
        }

      
    }
}

 普通用户界面:

图书馆功能界面:

 

 用户所借书界面:

 

我的信息及修改信息界面:

 

 代码如下:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Model;
using Dao;

namespace WindowsFormsApp1
{
    public partial class UserForm : Form
    {
        BookDao bookDao = new BookDao();
        UserDao userDao = new UserDao();
        User user = new User(UserDao.userName);
        public UserForm()
        {
            InitializeComponent();
        }

        private void 修改信息_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void UserForm_Load(object sender, EventArgs e)
        {
            //加载用户信息
            userNameTxt.Text = UserDao.userName;
            passwordTxt.Text = UserDao.password;
            emailTxt.Text = UserDao.email;
            phoneNumberTxt.Text = UserDao.phoneNumber;

            userNameTxt1.Text = UserDao.userName;
            passwordTxt1.Text = UserDao.password;
            emailTxt1.Text = UserDao.email;
            phoneNumberTxt1.Text = UserDao.phoneNumber;
            //将用户借的书加载到表格中
            dataGridView2.DataSource = bookDao.selectBorrowBook(user);
            // TODO: 这行代码将数据加载到表“testDBDataSet6.borrow”中。您可以根据需要移动或删除它。
            this.borrowTableAdapter.Fill(this.testDBDataSet6.borrow);
            // TODO: 这行代码将数据加载到表“testDBDataSet3.book”中。您可以根据需要移动或删除它。
            this.bookTableAdapter.Fill(this.testDBDataSet3.book);

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }
        //图书查询按钮
        private void button1_Click(object sender, EventArgs e)
        {
            string bookName = bookNameTxt.Text;
            string author = authorTxt.Text;
            string ISBN = ISBNTxt.Text;
            string bookType = bookTypeTxt.Text;
            Book book = new Book(bookName, author, ISBN, bookType);
            dataGridView1.DataSource = bookDao.selectBook(book);
        }
        //图书借阅功能按钮
        private void button2_Click(object sender, EventArgs e)
        {
            string userName = UserDao.userName;
            string bookName = bookNameTxt.Text;
            string author = authorTxt.Text;
            string ISBN = ISBNTxt.Text;
            string bookType = bookTypeTxt.Text;
            User user = new User(userName);
            Book book = new Book(bookName, author, ISBN, bookType);
            int x = bookDao.borrowBook(user, book);
            if (x == 1)
            {
                MessageBox.Show("借阅成功");
                dataGridView2.DataSource = bookDao.selectBorrowBook(user);//借阅成功后更新我借的图书表
                reset1();
            }
            else
            {
                MessageBox.Show("借阅失败");
            }
        }
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //获得当前选中的行   
            int rowindex = e.RowIndex;

            //获得当前行的第0列的值   
            //idTxt1.Text = dataGridView1.Rows[rowindex].Cells[0].Value.ToString();
            //获得当前行的第一列的值  
            bookNameTxt.Text = dataGridView1.Rows[rowindex].Cells[1].Value.ToString().Trim();
            //获得当前行的第二列的值   
            authorTxt.Text = dataGridView1.Rows[rowindex].Cells[2].Value.ToString().Trim();
            ISBNTxt.Text = dataGridView1.Rows[rowindex].Cells[3].Value.ToString().Trim();
            bookTypeTxt.Text = dataGridView1.Rows[rowindex].Cells[4].Value.ToString().Trim();
        }

        //重置图书馆中的文本框
        public void reset1()
        {
            bookNameTxt.Text = "";
            authorTxt.Text = "";
            ISBNTxt.Text = "";
            bookTypeTxt.Text = "";
        }
        //重置我借的书的文本框
        public void reset2()
        {
            idTxt.Text = "";
            bookNameTxt.Text = "";
            authorTxt.Text = "";
            ISBNTxt.Text = "";
            bookTypeTxt.Text = "";
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }
        //归还按钮
        private void button3_Click(object sender, EventArgs e)
        {
            string id = idTxt.Text;
            int x = bookDao.deleteBook(int.Parse(id));
            if (x == 1)
            {
                MessageBox.Show("归还成功");
                dataGridView2.DataSource = bookDao.selectBorrowBook(user);
                reset2();
            }
            else
            {
                MessageBox.Show("归还失败");
            }
        }

        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //获得当前选中的行   
            int rowindex = e.RowIndex;

            //获得当前行的第0列的值   
            idTxt.Text = dataGridView1.Rows[rowindex].Cells[0].Value.ToString();
            //获得当前行的第一列的值  
            bookNameTxt1.Text = dataGridView2.Rows[rowindex].Cells[1].Value.ToString().Trim();
            //获得当前行的第二列的值   
            authorTxt1.Text = dataGridView2.Rows[rowindex].Cells[2].Value.ToString().Trim();
            ISBNTxt1.Text = dataGridView2.Rows[rowindex].Cells[3].Value.ToString().Trim();
            bookTypeTxt1.Text = dataGridView2.Rows[rowindex].Cells[4].Value.ToString().Trim();
        }
        
        private void label17_Click(object sender, EventArgs e)
        {
           
        }
        //修改用户信息按钮
        private void button4_Click(object sender, EventArgs e)
        {
            int id = UserDao.id;

            string userName = userNameTxt1.Text;
            string password = passwordTxt1.Text;
            string email = emailTxt1.Text;
            string phoneNumber = phoneNumberTxt1.Text;

            User user = new User(id, userName, password, email, phoneNumber);
            int x = userDao.updateUser(user);

            if (x == 1)
            {
                MessageBox.Show("修改成功");
                //修改成功后更新我的信息
                userNameTxt.Text = user.UserName;
                passwordTxt.Text = user.Password;
                emailTxt.Text = user.Email;
                phoneNumberTxt.Text = user.PhoneNumber;
            }
            else
            {
                MessageBox.Show("修改失败");
            }
        }
    }
}

 管理员界面:

用户管理界面(这里进行测试时出现问题才会一样,已经解决):

图书管理界面:

用户借书记录界面:

代码如下:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Util;
using System.Text.RegularExpressions;
using Model;
using Dao;
namespace WindowsFormsApp1
{
    public partial class AdminForm : Form
    {
        AdminDao adminDao = new AdminDao();
        UserDao userDao = new UserDao();
        BookDao bookDao = new BookDao();
        public AdminForm()
        {
            InitializeComponent();
        }

        private void AdminForm_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“testDBDataSet6.borrow”中。您可以根据需要移动或删除它。
            this.borrowTableAdapter.Fill(this.testDBDataSet6.borrow);
            // TODO: 这行代码将数据加载到表“testDBDataSet4.book”中。您可以根据需要移动或删除它。
            this.bookTableAdapter1.Fill(this.testDBDataSet4.book);
            // TODO: 这行代码将数据加载到表“testDBDataSet2.book”中。您可以根据需要移动或删除它。
            this.bookTableAdapter.Fill(this.testDBDataSet2.book);
            // TODO: 这行代码将数据加载到表“testDBDataSet1.user”中。您可以根据需要移动或删除它。
            this.userTableAdapter.Fill(this.testDBDataSet1.user);

        }

        //增加按钮
        private void button2_Click(object sender, EventArgs e)
        {
            string userName = userNameTxt.Text;
            string password = passwordTxt.Text;

            string email = emailTxt.Text;
            string phoneNumber = phoneNumberTxt.Text;
            if (stringUtil.isEmpty(userName))
            {
                MessageBox.Show("用户名不能为空");
                return;
            }
            if (stringUtil.isEmpty(password))
            {
                MessageBox.Show("密码不能为空");
                return;
            }
            if (stringUtil.isEmpty(email))
            {
                MessageBox.Show("邮箱不能为空");
                return;
            }
            //利用正则表达式判断邮箱是否符合格式
            if (Regex.IsMatch(email, @"[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?") == false)
            {
                MessageBox.Show("请输入正确的邮箱格式");
                return;
            }
            if (stringUtil.isEmpty(phoneNumber))
            {
                MessageBox.Show("手机号不能为空");
                return;
            }
            //利用正则表达式判断手机号码是否符合格式
            if (Regex.IsMatch(phoneNumber, "[0-9]{11,11}") == false)
            {
                MessageBox.Show("请输入正确的手机号");
                return;
            }

            User user = new User(userName, password, email, phoneNumber);//将文本框中的数据传入用户对象
            if (userDao.sameUser(user) == true)  //判断用户是否存在以及注册事件
            {
                int x = userDao.Register(user);         //返回查询值
                if (x == 1)
                {
                    MessageBox.Show("添加成功");
                    dataGridView1.DataSource= adminDao.fill();  //添加成功后更新

                }

            }
            else
            {
                MessageBox.Show("添加失败");
            }
        }

        //修改用户按钮
        private void button3_Click(object sender, EventArgs e)
        {
            string id = idTxt.Text;
            string userName = userNameTxt.Text;
            string password = passwordTxt.Text;
            string email = emailTxt.Text;
            string phoneNumber = phoneNumberTxt.Text;
            User user = new User(int.Parse(id), userName, password, email, phoneNumber);
            if (userDao.sameUser(user) == true)
            {
                int x = adminDao.updateUser(user);
                if (x == 1)
                {
                    MessageBox.Show("修改成功");
                    dataGridView1.DataSource = adminDao.fill();  //修改成功后更新
                    resetUser();
                }

            }
            else
            {
                MessageBox.Show("修改失败,不能存在相同的用户名");
            }
        }
        //查询用户按钮
        private void button1_Click(object sender, EventArgs e)
        {
            string userName = userNameTxt.Text;
            string email = emailTxt.Text;
            string phoneNumber = phoneNumberTxt.Text;
            User user = new User(userName, email, phoneNumber);
            dataGridView1.DataSource = adminDao.selectUser(user);
        }

        //点击获取选中的行
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //获得当前选中的行   
            int rowindex = e.RowIndex;

            //获得当前行的第0列的值   
            idTxt.Text = dataGridView1.Rows[rowindex].Cells[0].Value.ToString();
            //获得当前行的第一列的值  
            userNameTxt.Text = dataGridView1.Rows[rowindex].Cells[1].Value.ToString().Trim();
            //获得当前行的第二列的值   
            passwordTxt.Text = dataGridView1.Rows[rowindex].Cells[2].Value.ToString().Trim();
            emailTxt.Text = dataGridView1.Rows[rowindex].Cells[3].Value.ToString().Trim();
            phoneNumberTxt.Text = dataGridView1.Rows[rowindex].Cells[4].Value.ToString().Trim();
        }
        //删除用户按钮
        private void button4_Click(object sender, EventArgs e)
        {
            string id = idTxt.Text;
            User user = new User(int.Parse(id));
            int x = adminDao.deleteUser(user);
            if (x == 1)
            {
                MessageBox.Show("删除成功");
                resetUser();        //删除成功后重置
            }
            else
            {
                MessageBox.Show("删除失败");
            }
        }
        //重置用户按钮
        private void button5_Click(object sender, EventArgs e)
        {
            resetUser();
        }


        //重置用户文本框
        public void resetUser()
        {
            idTxt.Text = "";
            userNameTxt.Text = "";
            passwordTxt.Text = "";
            emailTxt.Text = "";
            phoneNumberTxt.Text = "";
        }
        //重置书籍文本框
        public void resetBook()
        {
            bookIdTxt.Text = "";
            bookNameTxt.Text = "";
            authorTxt.Text = "";
            ISBNTxt.Text = "";
            bookTypeTxt.Text = "";
        }

        //查询图书按钮
        private void button6_Click(object sender, EventArgs e)
        {
            string bookName = bookNameTxt.Text;
            string author = authorTxt.Text;
            string ISBN = ISBNTxt.Text;
            string bookType = bookTypeTxt.Text;
            Book book = new Book(bookName, author, ISBN,bookType);
            dataGridView2.DataSource = bookDao.selectBook(book);
        }

        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //获得当前选中的行   
            int rowindex = e.RowIndex;

            //获得当前行的第0列的值   
            bookIdTxt.Text = dataGridView2.Rows[rowindex].Cells[0].Value.ToString();
            //获得当前行的第一列的值  
            bookNameTxt.Text = dataGridView2.Rows[rowindex].Cells[1].Value.ToString().Trim();
            //获得当前行的第二列的值   
            authorTxt.Text = dataGridView2.Rows[rowindex].Cells[2].Value.ToString().Trim();
            ISBNTxt.Text = dataGridView2.Rows[rowindex].Cells[3].Value.ToString().Trim();
            bookTypeTxt.Text = dataGridView2.Rows[rowindex].Cells[4].Value.ToString().Trim();
        }
        //添加图书按钮
        private void button7_Click(object sender, EventArgs e)
        {
            string bookName = bookNameTxt.Text;
            string author = authorTxt.Text;
            string iSBN = ISBNTxt.Text;
            string bookType = bookTypeTxt.Text;
            Book book = new Book(bookName, author, iSBN, bookType);
            int x = bookDao.addBook(book);
            if (x == 1)
            {
                MessageBox.Show("添加成功");
                dataGridView2.DataSource = bookDao.fill();//添加成功后重新读取数据
                resetBook();//添加成功后重置文本框
                
            }
            else
            {
                MessageBox.Show("添加失败");
            }
        }
        //修改图书按钮
        private void button9_Click(object sender, EventArgs e)
        {
            string id = bookIdTxt.Text;
            string bookName = bookNameTxt.Text;
            string author = authorTxt.Text;
            string iSBN = ISBNTxt.Text;
            string bookType = bookTypeTxt.Text;
           
            Book book1 = new Book(int.Parse(id), bookName, author, iSBN, bookType);
            int y = bookDao.updateBook(book1);
            if (y == 1)
            {
                MessageBox.Show("修改成功");
                dataGridView2.DataSource = bookDao.fill();//修改成功后重新读取数据
            }
            else
            {
                MessageBox.Show("修改失败");
            }
        }

        //重置图书按钮
        private void button10_Click(object sender, EventArgs e)
        {
            resetBook();
        }
        //删除图书按钮
        private void button8_Click(object sender, EventArgs e)
        {
            string id = bookIdTxt.Text;
            Book book = new Book(int.Parse(id));
            if (stringUtil.isEmpty(id))
            {
                MessageBox.Show("请选择要删除的图书");
            }
            if (stringUtil.isNotEmpty(id))
            {
                int x = bookDao.deleteBook(book);
                if (x == 1)
                {
                    MessageBox.Show("删除成功");
                    resetBook();//添加成功后重置文本框
                    dataGridView2.DataSource = bookDao.fill();//删除后重新读取数据
                }
                else
                {
                    MessageBox.Show("删除失败");
                }

            }
        }
    }
    
}

有会员的大佬可以下载源码:源码下载地址

网盘地址:

链接:源码 密码:xn35

取了源码觉得不错的小伙伴点个赞哦,对源码有改进的可以和我交流一下,大家共同进步!!!


版权声明:本文为weixin_43209848原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。