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

Visual Studio 2022/C#:删除数据前如何检查记录是否存在?

实现思路与修改后的代码

核心逻辑是先验证目标Rank对应的记录是否存在,再决定执行删除操作还是提示记录不存在,同时优化数据库资源的管理方式。

修改后的完整代码:

protected void bn_delete_Click(object sender, EventArgs e)
{
    string rank = tb_rank.Text;
    string notification = string.Empty;

    // 检查目标记录是否存在
    string checkExistQuery = "SELECT COUNT(*) FROM MovieList WHERE Rank = @Rank";
    using (OleDbConnection dbConn = new OleDbConnection(connectionString))
    {
        dbConn.Open();
        // 执行存在性检查
        using (OleDbCommand checkCmd = new OleDbCommand(checkExistQuery, dbConn))
        {
            checkCmd.Parameters.AddWithValue("@Rank", rank);
            int existingCount = (int)checkCmd.ExecuteScalar();

            if (existingCount > 0)
            {
                // 记录存在,执行删除
                string deleteQuery = "DELETE FROM MovieList WHERE Rank = @Rank";
                using (OleDbCommand deleteCmd = new OleDbCommand(deleteQuery, dbConn))
                {
                    deleteCmd.Parameters.AddWithValue("@Rank", rank);
                    deleteCmd.ExecuteNonQuery();
                    notification = "Movie deleted";
                }
            }
            else
            {
                // 记录不存在,设置提示文本
                notification = "Movie not exists";
            }
        }
    }

    // 弹出提示框
    ClientScript.RegisterStartupScript(this.GetType(), "myalert", $"alert('{notification}');", true);
}

关键调整说明

  • 新增存在性验证:通过SELECT COUNT(*)查询目标Rank的记录数量,用ExecuteScalar快速获取结果,判断是否有可删除的记录。
  • 用using管理资源:数据库连接和命令对象都通过using语句包裹,自动完成资源释放,避免手动关闭连接可能引发的资源泄漏问题。
  • 分支逻辑处理:根据检查结果分别执行删除操作或设置不存在的提示信息,最后统一触发前端提示。
  • 复用数据库连接:在同一个连接会话中完成检查和删除操作,减少数据库连接的建立开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:15:38