vs2019,C#,MySQL创建图书管理系统4(删除和修改功能的实现)

本文详细描述了使用MySQL数据库实现图书删除与修改功能的过程,包括修改启动项、设置选中图书、界面布局调整、图书添加与修改界面跳转、SQL语句操作以及行政22界面的按钮设计。作者通过实例展示了如何在admin2和admin22子窗体间传递数据和处理界面响应。
摘要由CSDN通过智能技术生成

目录

S1删除图书

 ①修改启动项

 ②设置当前选中的图书

 ③双击删除按钮

 ④初始时label中就已经选择了图书

 ⑤界面过大

 S2 修改图书

 ①构造添加的页面

 ②修改界面名称

 ③页面布局

1.界面大致

2.修改button

 S3 界面跳转

          ①跳转界面

 ②传入变量

 S4 admin22.cs【设计】的修改button

 S5 admin22.cs【设计】的“清空”button


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

S1删除图书

①修改启动项

Program的启动项改为admin2

 ②设置当前选中的图书

拉一个label在添加图书button的上面,其Font->text改为“当前选择的图书是:”【①】
再拉一个label放在刚刚拉的旁边,改其name为 label_chose【②】,同时其Font->text改为“NULL”

③双击删除按钮

进入删除的函数private void button_delete_book_Click(object sender, EventArgs e)
 

 private void button_delete_book_Click(object sender, EventArgs e)
        {
            try//防止索引超出范围,这里就用try...catch
            {
                string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取书号/选中行数的第0行的 第0个单元格 它的值转换成字符串
                label_chose.Text=id+ dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//显示正在选中的书号+书名
                DialogResult dr = MessageBox.Show("多笋啊~你真的想删书咩?", "消息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if(dr==DialogResult.OK)
                {
                    string sql = $"DELETE FROM ks_book WHERE bkCode= '{id}';";
                    Dao dao = new Dao();
                    if(dao.Execute(sql)>0)
                    {
                        MessageBox.Show("滴!知识的财富-1");
                        Table();
                    }
                    else
                    {
                        MessageBox.Show("鼠鼠我呀,删除失败了呢~" + sql);
                    }
                    dao.DaoClose();
                }
            }
            catch (Exception)
            {

                 MessageBox.Show("鼠鼠我呀,觉得你连想删除的都还没有选中呢", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

④初始时label中就已经选择了图书

        复制label_chose.Text= dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+ dataGridView1.SelectedRows[0].Cells[1].Value.ToString();;//获取书号/选中行数的第0行的 第0个单元格 它的值转换成字符串

admin2.cs【设计】->单击dataGridView1->属性->开头几个的闪电图片【事件】->操作->Click->双击Click->进入admin2.cs的private void dataGridView1_Click(object sender, EventArgs e)函数,其中输入 label_chose.Text= dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+ dataGridView1.SelectedRows[0].Cells[1].Value.ToString();;//获取书号/选中行数的第0行的 第0个单元格 它的值转换成字符串

再到启动事件里,即admin2.cs的 private void admin2_Load(object sender, EventArgs e)函数中输入label_chose.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+ dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号/选中行数的第0行的 第0个单元格 它的值转换成字符串(PS:放在Table()函数下面)

 ⑤界面过大

全部弄完后,运行,如果发现界面太大,解决方法:在admin2.cs的  private void admin2_Load(object sender, EventArgs e)函数中输入。再根据运行结果调整admin2.cs【设计】的控件大小

this.Width = 1000;
this.Height = 550;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;

 S2 修改图书

①构造添加的页面

添加新的窗口->命名为admin22(即admin2下的一个子窗体)

②修改界面名称

选中窗体,修改属性的Font->Text为”修改图书信息“

 ③页面布局

1.界面大致

法一:把admin21的全选C,V到admin22
法二:按照上一个文章的“S4 图书添加->③页面布局”步骤做一遍,这里不再赘述,传送门:页面布局

2.修改button

将admin22.cs【设计】的“添加图书的Text改为:‘Font->Text->“修改”,name改为:button_alter_book

双击“修改”的button,进入admin22.cs的private void button_alter_book_Click(object sender, EventArgs e)函数编辑页面-->在改函数外新建一个admin22的构造函数,如下代码->

string ID = "";//ID是主键,用于修改检索目标课本



        public admin22(string id,string name,string author,string press,string ISBN,string catalog,string price,string status)//这里的8个参数是数据库表book的8个属性
        {
            InitializeComponent();
            //传值
            ID=textBox1.Text = id;
            textBox2.Text = name;
            textBox3.Text = author;
            textBox4.Text = press;
            textBox5.Text = ISBN;
            textBox6.Text = catalog;
            textBox7.Text = price;
            textBox8.Text = status;
        }

 

 S3 界面跳转

①跳转界面

连接admin2【图书管理页面】和admin22【修改图书信息】,实现界面跳转
双击admin2.cs【设计】的“修改图书”的button,进入admin2.cs的 private void button_alter_book_Click(object sender, EventArgs e)函数编辑页面-->填入如下代码

        private void button_alter_book_Click(object sender, EventArgs e)
        {
            admin22 a2 = new admin22();//连接admin2【图书管理页面】和admin22【修改图书信息】,实现界面跳转
            a2.ShowDialog();
        }

 ②传入变量

依旧在这个函数里,在上一步的基础上进行如下修改:

private void button_alter_book_Click(object sender, EventArgs e)
        {
            try//双击tab  可直接补全
            {
                string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
                string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
                string author = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
                string press = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
                string ISBN = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
                string catalog = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();
                string price = dataGridView1.SelectedRows[0].Cells[6].Value.ToString();
                string status = dataGridView1.SelectedRows[0].Cells[7].Value.ToString();

                admin22 a2 = new admin22(id,name,author,press,ISBN,catalog,price,status);//连接admin2【图书管理页面】和admin22【修改图书信息】,实现界面跳转
                a2.ShowDialog();

                Table();//刷新数据
            }
            catch (Exception)
            {

                MessageBox.Show("鼠鼠我呀,不知道你哪里错了,\n但是肯定的是现在修改不了啦\n\t哈哈哈~~");
            }

            
        }

 S4 admin22.cs【设计】的修改button

复制在navicat下copy的MySQL修改语句:UPDATE ks_book SET bkCode='1008',bkName='VStest',bkAuthor='龙',bkPress='革命军',bkISBN='',bkCatalog='',bkPrice=99,bkStatus='在馆' WHERE bkCode='1007';

双击admin22.cs【设计】的“修改”的button,进入admin22.cs的 private void button_alter_book_Click(object sender, EventArgs e)函数编辑页面-->填入如下代码

private void button_alter_book_Click(object sender, EventArgs e)//调用MySQL语句,开始修改
        {
            //pt:下面的sql语句是直接从编译器navicat上C V的
            string sql = $"UPDATE ks_book SET bkCode='{textBox1.Text}',bkName='{textBox2.Text}',bkAuthor='{textBox3.Text}',bkPress='{textBox4.Text}',bkISBN='{textBox5.Text}',bkCatalog='{textBox6.Text}',bkPrice={textBox7.Text},bkStatus='{textBox8.Text}' WHERE bkCode='{ID}';";
            Dao dao = new Dao();
            if(dao.Execute(sql)>0)
            {
                MessageBox.Show("Alter successfully");
                this.Close();
            }
        }

 S5 admin22.cs【设计】的清空button

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

private void button_empty_Click(object sender, EventArgs e)
        {
            //点击“取消”button后 清空界面框
            foreach (System.Windows.Forms.Control control in this.Controls)
            {
                if (control is System.Windows.Forms.TextBox)
                {
                    System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control;
                    tb.Text = String.Empty;
                }
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值