You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#窗体中通过按钮删除DataGridView及MariaDB中的选中行

实现DataGridView选中行删除并同步MariaDB数据库

核心思路

通过删除按钮的点击事件,先获取DataGridView中用户选中的行,提取该行对应的数据库主键(必须依赖唯一标识字段,比如id),执行MariaDB的删除语句同步数据库数据,最后移除DataGridView中的选中行。

具体实现代码(以C#为例)

假设你的DataGridView绑定的表主键为id,且DataGridView中包含该列(可设为隐藏列):

private void btnDelete_Click(object sender, EventArgs e)
{
    // 判断是否选中行
    if (dataGridView1.SelectedRows.Count == 0)
    {
        MessageBox.Show("请先选中要删除的行");
        return;
    }

    // 确认删除
    if (MessageBox.Show("确定要删除选中的行吗?", "确认删除", MessageBoxButtons.YesNo) != DialogResult.Yes)
    {
        return;
    }

    // 获取选中行的主键值
    int rowId = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["id"].Value);
    string connString = "你的MariaDB连接字符串"; // 替换为你已有的连接字符串

    try
    {
        using (MySqlConnection conn = new MySqlConnection(connString))
        {
            conn.Open();
            // 编写参数化删除语句,防止SQL注入
            string sql = "DELETE FROM 你的表名 WHERE id = @id";
            using (MySqlCommand cmd = new MySqlCommand(sql, conn))
            {
                cmd.Parameters.AddWithValue("@id", rowId);
                int affectedRows = cmd.ExecuteNonQuery();
                if (affectedRows > 0)
                {
                    // 删除DataGridView中的选中行
                    dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
                    MessageBox.Show("删除成功");
                }
                else
                {
                    MessageBox.Show("未找到对应数据,删除失败");
                }
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("删除时出错:" + ex.Message);
    }
}

关键注意事项

  • 必须依赖主键:数据库删除必须通过唯一标识(如id)定位数据,避免误删多条记录。如果你的主键不是id,替换代码中对应的字段名即可。
  • 参数化查询:一定要用参数化语句,禁止直接拼接SQL字符串,防止SQL注入攻击。
  • 操作顺序:优先执行数据库删除操作,再移除DataGridView的行,避免DataGridView行已删除但数据库操作失败导致数据不一致。
  • 异常处理:添加异常捕获,处理数据库连接失败、数据不存在等异常情况,提升用户体验。

内容的提问来源于stack exchange,提问作者unbeliever

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:32:09