问题描述
欲将下图表格中的若干行数据在界面上删除,同时相应删除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三行数据
结果如下
这里展示了多行(分散)数据的删除,对于单行,其他多行情况下这个方法同样适用~
希望能帮到大家~~~