基于vs2017的图书馆管理系统

1. 用到的工具:vs2017 、sqlserver

说明:本项目是c# 语言,用到数据库sqlserver,完成了对人员信息管理、借书、还书的基本操作。

2. 介绍数据库表:

2.1 首先打开数据库:sqlsrerver

2.2 这里我设置的登录信息

账号:sa
密码 :123
在这里插入图片描述

2.3 创建数据库数据表

自己配置数据库 和数据表 如下图:
人员信息
这是图书表
下面就是vs2017上的操作了

3. vs2017

3.1 创建窗口程序(这里不多做演示)

3.2 登录界面

这是首先设置登录界面 ,登陆界面就是连接数据库,如果数据库成功连接,然后就 访问数据表中的人员信息,Table_2中存放的有人员的密码,判断如果信息正确,那么就成功登录 进入下一个界面,失败则继续。

3.2.1 数据表Table_2

在这里插入图片描述
如上图表中的项 s_Name :shifeng, s_Pwd: 123456
那么代码中就要这样做查询:下面展示一些 内联代码片

select * from Table_2 where s_Name='"+cmb_Name.Text.Trim()+"'and s_Pwd='"+txt_Pwd.Text.Trim()+"'"

上面的cmb_Name和 txt_Pwd是我的界面上的两个控件名字
如下图箭头所指

主界面

3.2.1 登录连接数据库

/// <summary>
/// 连接数据库
/// </summary>
/// <returns></returns>
public bool GetConnection()
{
   Connection = new SqlConnection("server=.;database=Farm;uid=sa;pwd=123");
   Connection.Open();
   if ( Connection.State==ConnectionState.Open )
   {
       IsOpen = true;
       return true;
   }
   return false;
}

3.2.2 查询数据表

在上一步成功连接数据库后,就要进行查询数据表的用户信息,判断与控件上输入的是否一致,如果一致就跳转下一界面,错误返回当前界面。

try {
        if (!IsOpen)
        {
            GetConnection();
        }
        Command = new SqlCommand(sql, Connection);
        ds = new DataSet();
        adapter = new SqlDataAdapter(Command);
        if (adapter.Fill(ds) > 0)
        {
            Connection.Close();
            IsOpen = false;
            return ds;
       }
        return null;
}
 catch
{
     return null;
}

注:其中的sql就是我要查询的用户和密码
判断是否查询到相应的信息:

 private void button1_Click1(object sender, EventArgs e)
 {
     FrmMain frm = new FrmMain();  
     if (txt_Pwd.Text.Trim() == "" && cmb_Name.Text.Trim() == "")
     {
         MessageBox.Show("账号,密码不能为空!", "提示");
         cmb_Name.Focus();
         return;
     }
     else
     {
         ds= db.GetDataTable("select * from Table_2 where s_Name='"+cmb_Name.Text.Trim()+"'and s_Pwd='"+txt_Pwd.Text.Trim()+"'");
         //   MessageBox.Show(ds);
         if (ds != null)
         {
             Permis = ds.Tables[0].Rows[0]["s_Permission"].ToString().Trim();//获取权限并赋值给Permis
             StrName = cmb_Name.Text.Trim();//获取登录用户
             rm.Show();
         }
         else
         {
             MessageBox.Show("用户或密码有误!","提示");
         }
         StrName = cmb_Name.Text.Trim();//获取登录用户
         User use = new User();
         use.HAHA(StrName);
    }
}
               

3.3 主界面

如果身份信息无误跳转到主界面,如下图
主界面主界面负责切换各各模块功能,最重要的当然就是图书借还的功能

3.4 图书管理模块

图书管理界面

3.4.1 数据表Table_3

思路:借书、还书都是对数据库的操作,所欲先介绍数据表的设计,设置了四项,分别是book:书名,s_name:用户名,state:书的状态, s_time:借书时间在这里插入图片描述在这里插入图片描述

3.4.2 借书

借书:将界面上选中的图书的名字数据book获取到,然后用数据库查询语句查询这本书book,将这本书中的一项state 设置为“non”,在将信息显示在界面中
1.获取鼠标选中的书名,赋值给str

int a = dataGridView1.CurrentRow.Index;
string str = dataGridView1.Rows[a].Cells["bookDataGridViewTextBoxColumn"].Value.ToString();

2.下一步就是在Table_3中查询这个str,并将对应的state修改为“non”

db.GetExecuteNQ(" UPDATE Table_3 SET state = 'non'where book = '" + str + "' ");
db.GetExecuteNQ(" UPDATE Table_3 SET s_name = '" + b + " 'where book = '" + str + "' ");
MessageBox.Show(dateTimePicker1.Text);
//dateTimePicker1.Value.ToShortDateString()
db.GetExecuteNQ(" UPDATE Table_3 SET s_time = '" + dateTimePicker1.Text + "'where book = '" + str + "'");
this.Hide();
frmColletion frm1 = new frmColletion();
frm1.Show();

3.4.3 还书

思路:那么还就和借书一样了,获取选中的书名,然后修改state为“exist”,并且清空借书时间s_time和借书人s_name.

db.GetExecuteNQ(" UPDATE Table_3 SET state = 'exist'where book = '" + str + "' ");
db.GetExecuteNQ(" UPDATE Table_3 SET s_name = '" + " " + " 'where book = '" + str + "' ");
this.Hide();
frmColletion frm1 = new frmColletion();
frm1.Show();

4.功能演示

主要附上借书 还书功能图
在这里插入图片描述

5.总结

1.数据库连接时一定注意,查询语句是否正确
2.dataGridView这个控件显示数据表中图书信息时,在属性DataSource中添加,具体使用方法,百度
3.总之这个系统并不难,主要就是数据库查询。

注:工程代码

欢迎关注:微信公众号留言获取工程源码“MeiXiangDao2020”
1.关注公众号
2.回复:“图书馆管理系统”
更多资源尽在‘媒想到叭’
声明: 大家回复的是**“图书馆管理系统** ” 不是‘图书管理系统’。自己看清楚

Logo

快速构建 Web 应用程序

更多推荐