C#中dataGridView控件中将鼠标选中行数据进行删除,同时对应MySQL数据也删除的方法

该篇博客介绍了如何在用户界面选择多行数据后,通过编程实现与MySQL数据库中的对应记录同步删除。作者提供了详细的解决思路和代码实现,包括连接数据库、编写删除语句、遍历并删除选中行,最后展示了一个删除多行(如160、162、164)的例子。此方法适用于单行或任意多行数据的删除操作。
摘要由CSDN通过智能技术生成

问题描述

欲将下图表格中的若干行数据在界面上删除,同时相应删除MySQL内的数据。本文所述的方法适用于单行或多行(相邻或分散)数据的删除~~~
在这里插入图片描述

解决思路+代码实现

解决思路

1.编写表内容删除的MySQL语句
2.获取鼠标选中行的编号
3.通过一个for循环依次将选中数据删除

代码实现

            //定义计数值
            int count = 0;
            try
            {
                //连接数据库,我这里连接数据库的方法是自己写的,方法因人而异
                connectMySQL();
                //for循环,dataGridView1.SelectedRows.Count为鼠标选中行的数目,一次for循环删除一行数据
                for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
                {
                    //获得i行的编号
                    int id = Convert.ToInt32(dataGridView1.SelectedRows[i].Cells[0].Value);
                    //编写数据库删除代码,这里还用到了动态变量,用于改变每次id值
                    string dataToDo3 = $"delete from student where id = {id}";
                    //创建MySqlCommand类用于SQL语句的执行
                    cmd = new MySqlCommand(dataToDo3, conn);
                    //定义x接收返回值SQL语句返回值,为0则为执行失败
                    int x=cmd.ExecuteNonQuery();
                    //执行判断
                    if (x == 0)
                    {
                        MessageBox.Show("删除失败");
                    }
                    //若成功则计数值+1
                    count = count + 1;
                }                
                //若计数值等于选中行的数目,代表成功完成所有行的删除
                if (count== dataGridView1.SelectedRows.Count)
                {
                    MessageBox.Show("删除成功");
                }
       
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
            finally
            {
                //这里的button2是刷新界面,因人而异,可忽略
                button2.PerformClick();
                //关闭数据库连接
                closeMySQL();
            }

运行结果

假设我要删除编号160、162、164三行数据
在这里插入图片描述
结果如下
在这里插入图片描述
这里展示了多行(分散)数据的删除,对于单行,其他多行情况下这个方法同样适用~
希望能帮到大家~~~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值