这个图书管理系统是我在B站观看详细的教学视频制作的,B站的那位老师讲的十分的详细,大家可以去看B站那位老师的讲解
视频网址:C# 图书管理系统 winform 入门教程 SqlServer数据库_哔哩哔哩_bilibili
一.Dao类
using System.Data.SqlClient;
namespace BOOK
{
class Dao
{
SqlConnection sc;
public SqlConnection connect()
{
string str = @"Data Source=127.0.0.1;Initial Catalog=student;User ID=sa;Pwd=123456";//注意前面是Data不是Date
//链接数据库字符串
SqlConnection sc = new SqlConnection(str);
//创建数据库链接对象
sc.Open();
//打开数据库链接
return sc;
//返回数据库对象
}
public SqlCommand command(string sql)
{
SqlCommand cmd = new SqlCommand(sql, connect());//创建数据库操作对象
return cmd;//返回数控库操作对象
}
public int Execute(string sql)//更新操作
{
return command(sql).ExecuteNonQuery();
}
public SqlDataReader read(string sql)//读取操作
{
return command(sql).ExecuteReader();
}
public void DaoClose()
{
//sc.Close();//关闭数据库链接
}
}
}
二.Data类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BOOK
{
class Data
{
public static string UID = "", UName = "";//登录用户的id和姓名
}
}
三·登录界面
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;
namespace BOOK
{
public partial class login : Form
{
public login()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label2_Click(object sender, EventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox2.Text != "")//判断是否为空
{
Login();
}
else
{
MessageBox.Show("输入有空项,请重新输入");
}
}
public void Login()
{ //用户
if (radioButtonUser.Checked == true)
{
Dao dao = new Dao();
string sql = "select * from t_user where id='" + textBox1.Text + "' and psw='" + textBox2.Text + "'";
IDataReader dc = dao.read(sql);
if (dc.Read())
{
Data.UID = dc["id"].ToString();
Data.UName = dc["name"].ToString();
MessageBox.Show("yes");
user1 user = new user1();
this.Hide();//隐藏旧窗体
user.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("no");
}
dao.DaoClose();
}
//管理员
if (radioButtonAdmin.Checked == true)
{
Dao dao = new Dao();
string sql = "select * from t_admin where id='" + textBox1.Text + "' and psw='" + textBox2.Text + "'";
IDataReader dc = dao.read(sql);
if (dc.Read())
{
MessageBox.Show("yes");
admin1 admin= new admin1();
this.Hide();//隐藏旧窗体
admin.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("no");
}
dao.DaoClose();
}
}
private void login_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;
namespace BOOK
{
public partial class admin1 : Form
{
public admin1()
{
InitializeComponent();
}
private void admin1_Load(object sender, EventArgs e)
{
}
private void 图书管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
admin2 admin = new admin2();
admin.ShowDialog();
}
private void 图书管理ToolStripMenuItem_Click_1(object sender, EventArgs e)
{
admin2 admin = new admin2();
admin.ShowDialog();
}
}
}
五·图书管理界面
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;
namespace BOOK
{
public partial class admin2 : Form
{
public admin2()
{
InitializeComponent();
}
private void admin2_Load(object sender, EventArgs e)
{
Table();
label2.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+ dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号
}
//从数据库读取数据显示在表中
public void Table()
{
dataGridView1.Rows.Clear();//清空控件旧数据
Dao dao = new Dao();
string sql = "select * from t_book";
IDataReader dc = dao.read(sql);
while(dc.Read())
{
dataGridView1.Rows.Add(dc[0].ToString(),dc[1].ToString(),dc[2].ToString(),dc[3].ToString(),dc[4].ToString());
}
dc.Close();
dao.DaoClose();
}
//根据书号显示数据
public void TableID()
{
dataGridView1.Rows.Clear();//清空控件旧数据
Dao dao = new Dao();
string sql = $"select * from t_book where id='{textBox1.Text}'";
IDataReader dc = dao.read(sql);
while (dc.Read())
{
dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());
}
dc.Close();
dao.DaoClose();
}
//根据书名显示数据
public void TableName()
{
dataGridView1.Rows.Clear();//清空控件旧数据
Dao dao = new Dao();
string sql = $"select * from t_book where name like'%{textBox2.Text}%'";
IDataReader dc = dao.read(sql);
while (dc.Read())
{
dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());
}
dc.Close();
dao.DaoClose();
}
private void button3_Click(object sender, EventArgs e)
{
try
{
string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取书号
label2.Text=id+ dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
DialogResult dr = MessageBox.Show("确认删除吗","信息提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if(dr==DialogResult.OK)
{
string sql = $"delete from t_book where id='{id}'";
Dao dao = new Dao();
if(dao.Execute(sql)>0)
{
MessageBox.Show("删除成功");
Table();
}
else
{
MessageBox.Show("删除失败"+sql);
}
dao.DaoClose();
}
}
catch
{
MessageBox.Show("请先在表格中选中要删除的图书记录!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void dataGridView1_Click(object sender, EventArgs e)
{
label2.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号
}
private void button5_Click(object sender, EventArgs e)
{
TableID();
}
private void button1_Click(object sender, EventArgs e)
{
admin21 admin = new admin21();
admin.ShowDialog();
}
private void button6_Click(object sender, EventArgs e)
{
TableName();
}
private void button4_Click(object sender, EventArgs e)
{
Table();
textBox1.Text = "";
textBox2.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;
namespace BOOK
{
public partial class admin21 : Form
{
public admin21()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && textBox5.Text != "")
{
Dao dao = new Dao();
string sql = $"insert into t_book values('{textBox1.Text}','{textBox2.Text}','{textBox3.Text}','{textBox4.Text}',{textBox5.Text})";
int n = dao.Execute(sql);
if (n > 0)
{
MessageBox.Show("添加成功");
}
else
{
MessageBox.Show("添加失败");
}
}
else
{
MessageBox.Show("输入不允许为空");
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
}
private void admin21_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;
namespace BOOK
{
public partial class user1 : Form
{
public user1()
{
InitializeComponent();
}
private void 图书查看和借阅ToolStripMenuItem_Click(object sender, EventArgs e)
{
user2 admin = new user2();
admin.ShowDialog();
}
private void 我的图书和归还ToolStripMenuItem_Click(object sender, EventArgs e)
{
user3 admin = new user3();
admin.ShowDialog();
}
private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("还想要帮助想的美!");
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
八·图书和借阅界面
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;
namespace BOOK
{
public partial class user2 : Form
{
public user2()
{
InitializeComponent();
Table();
}
private void user2_Load(object sender, EventArgs e)
{
}
//从数据库读取数据显示在表中
public void Table()
{
dataGridView1.Rows.Clear();//清空控件旧数据
Dao dao = new Dao();
string sql = "select * from t_book";
IDataReader dc = dao.read(sql);
while (dc.Read())
{
dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());
}
dc.Close();
dao.DaoClose();
}
private void button1_Click(object sender, EventArgs e)
{
string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取书号
int number = int.Parse(dataGridView1.SelectedRows[0].Cells[4].Value.ToString());//库存
if(number<1)
{
MessageBox.Show("库存不足");
}
else
{
string sql = $"insert into t_lend([uid],bid,[datetime])values('{Data.UID}','{id}',GETDATE());update t_book set number=number-1 where id='{id}'";
Dao dao = new Dao();
if (dao.Execute(sql) > 1)//执行两条语句,大于1才是都执行了
{
MessageBox.Show($"用户{ Data.UName}借出了图书{id}!");
Table();
}
}
}
}
}
十·借出和归还界面
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;
namespace BOOK
{
public partial class user3 : Form
{
public user3()
{
InitializeComponent();
Table();
}
private void user3_Load(object sender, EventArgs e)
{
}
public void Table()
{
dataGridView1.Rows.Clear();//清空控件旧数据
Dao dao = new Dao();
string sql = $"select [no],[bid],[datetime] from t_lend where[uid]='{Data.UID}'";
IDataReader dc = dao.read(sql);
while (dc.Read())
{
dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString());
}
dc.Close();
dao.DaoClose();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string no = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
string id = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
string sql = $"delete from t_lend where[no]={no};update t_book set number=number+1where id='{id}'";
Dao dao = new Dao();
if(dao.Execute(sql)>1)
{
MessageBox.Show("归还成功");
Table();
}
}
}
}
SQL Server数据库部分
1.t_admin设计部分
2.t_book设计部分
3.t_lend设计部分
4.t_user设计部分
数据库的数据部分我就不一一展示了。我直接整合在一起发了
最后我把完整的C#项目的百度网盘链接也放在这里。但是我建议还是去看看B站那位老师一步一步来亲手操作一下。
链接: https://pan.baidu/s/1qV0obKTwv8mKhymMZ1DfAg 提取码: f8w6 复制这段内容后打开百度网盘手机App,操作更方便哦
更多推荐
C# SQL简单图书管理系统(自学记录)
发布评论