vs2019,C#,MySQL创建图书管理系统7(用户借/还书)

目录

S1:借书user2.cs

①“借出图书”的button

②修改指定从哪个窗体启动

 ③窗体跳转

 ④执行

 S2:还书user3.cs

①“归还图书”的button

1.修改Table的sql语句

 2.归还图书函数

②窗体跳转

 S3:扩,User1.cs完善1

①帮助

②退出


本系列文章基于B站UP主“面朝星海我心澎湃”的视频P4,P5,时空门:P9 用户借/还书
区别在:
           ①up主用的SQLserver,但是本文章是MySQL
           ②本文章的数据库表比up主复杂一点,以及表里的内容不一样(本文章无论用户表还是管                   理员表都是海贼王滴,没办法,海米一枚~)
 

PT:
①表跟UP主不一样,所以MySQL查询语句不同
借书:借时,通过ks_book表判断该书是否在馆,在则:往borrow表插入数据,修改ks_book表,使借的该书不在馆  关于以下几个属性要注意一下
        借出的日期:用函数获取电脑当前时间 current()函数
        预计归还日期:【这个可先不弄,先把基础功能实现】电脑当前时间+他能借的时间(在readerType里有说),直接加就行啦。如果闲天数不同而sql语句写的麻烦可将所有人的借书天数都设置为30天UPDATE ks_readertype SET CanLendDay =30;
        实际归还日期、延时、罚钱数这边建议全部删除,避免麻烦。同时,我这边把borrow更新了一下。同时也把user3.cs更新了
 

 

 ③还书:borrow表删除数据,修改ks_book表,使借的该书在馆

 

S1:借书user2.cs

①“借出图书”的button

双击user2.cs【设计】“借出图书”的button,进入user2.cs的private void button_lend_bk_Click(object sender, EventArgs e)函数编辑页面-->在其中填入如下代码->

 private void button_lend_bk_Click(object sender, EventArgs e)
        {
            string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取书号
            string bkName = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号
            string ku_chun= dataGridView1.SelectedRows[0].Cells[7].Value.ToString();//获取库存,即是否在馆
            if(ku_chun=="在馆")
            {
                string sql = $"INSERT INTO ks_borrow VALUES({Data.UID},{id},'{bkName}',CURDATE());UPDATE ks_book SET bkStatus='不在' WHERE bkCode='{id}';";//更新borrow、book.status表
                Dao dao = new Dao();
                if (dao.Execute(sql) > 1)
                {
                    MessageBox.Show($"Congratulations {Data.UName}:\nhas borrowed {bkName}!");
                    Table();
                }
                else
                {
                    MessageBox.Show("鼠鼠我呀\n觉得你的sql语句可能错了呢\n所以借书失败了哦");
                }
            }
            else
            {
                MessageBox.Show("鼠鼠我呀,没有书了呢\n这边建议您联系管理员哈\n虽然可能联系不到\n因为他应该在某一个小角落看书呢");
            }
        }

②修改指定从哪个窗体启动

Program.cs【可从右侧“解决方案资源管理器】找

 ③窗体跳转

将user1.cs【设计】的“图书查看和借阅”  和  user2.cs【设计】连接,实现界面跳转。
双击user1.cs【设计】的“图书查看和借阅”的 字体 ,进入user1.cs的 private void 图书借阅ToolStripMenuItem_Click(object sender, EventArgs e)函数编辑页面-->填入如下代码

private void 图书借阅ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            user2 u2 = new user2();
            u2.Show();
        }

 ④执行

执行程序,窗体可能不怎么好看,具体美化等基础功能全部实现后开始逐一美化.运行效果:

 

 S2:还书user3.cs

①“归还图书”的button

双击user3.cs【设计】“归还图书”的button,进入user3.cs的private void button1_Click(object sender, EventArgs e)函数编辑页面--->

1.修改Table的sql语句

由于显示的是登陆的的借书信息,因此需要在显示的是borrow中ID=登录者ID的相关信息eg:如果只是1号(路飞)登录,就只显示他的相关借阅信息
MySQL语句:SELECT * FROM KS_Borrow WHERE rdID='1';【MYSQL编译器C V】
因此,Table()函数修改以下2个地方:

 

//从数据库读取数据显示在表格控件中
        public void Table()
        {
            dataGridView1.Rows.Clear();//将控件中已经有的旧数据全部清空
            Dao dao = new Dao();
            string sql = $"SELECT * FROM KS_Borrow WHERE rdID='{Data.UID}';";//要执行的sql语句,建议从编译器上copy该语句再黏贴到此处
            IDataReader dc = dao.read(sql);
            while (dc.Read())//当查询结果到达末尾后跳出while循环
            {
                //将读到的数据添加到dataGridView控件中
                //这里几个dc[]取决于你在页面的那里设置了几个属性
                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString());
            }
            dc.Close();
            dao.DaoClose();
        }

 2.归还图书函数

双击user3.cs【设计】“归还图书”的button,进入user3.cs的private void button1_Click(object sender, EventArgs e)函数编辑页面--->填入如下代码

 private void button1_Click(object sender, EventArgs e)//还书Button
        {
            string id = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号
            string bkName = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();//获取书号
            //还书时间:

            string sql = $"DELETE FROM ks_borrow WHERE bkID= '{id}';UPDATE ks_book SET bkStatus='在馆' WHERE bkCode='{id}';";//用图书ID 更新borrow、book.status表
            Dao dao = new Dao();
            if (dao.Execute(sql) > 1)
            {
                MessageBox.Show($"Congratulations {Data.UName}:\nhas return {bkName}!");
                Table();
            }
            else
            {
                MessageBox.Show("鼠鼠我呀\n觉得你的sql语句可能错了呢\n所以还书失败了哦");
            }
                        
        }

②窗体跳转

将user1.cs【设计】的“当前借阅和归还情况”  和  user3.cs【设计】连接,实现界面跳转。
双击user1.cs【设计】的“当前借阅和归还情况”的 字体 ,进入user1.cs的 private void 当前借阅和归还情况ToolStripMenuItem_Click(object sender, EventArgs e)函数编辑页面-->填入如下代码

user3 u3 = new user3();
            u3.Show();

 S3:扩,User1.cs完善1

①帮助

双击user1.cs【设计】“帮助”,进入user1.cs的private void button1_Click(object sender, EventArgs e)函数编辑页面--->填入如下代码

 private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //先随便弹个窗意思意思
            MessageBox.Show("V鼠鼠50,鼠鼠帮你解决障碍");
        }

 

②退出

双击user1.cs【设计】“退出”,进入user1.cs的private void button1_Click(object sender, EventArgs e)函数编辑页面--->填入如下代码​​​​​​​

 

 

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值