普通用户表

管理员表;

图书表:

借书记录表:

普通用户实体类:
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版权协议,转载请附上原文出处链接和本声明。