C#知识|账号管理系统:删除账号的完整流程和实现过程

哈喽,你好啊,我是雷工!

前面练习了账号管理系统中的修改账号信息的功能,接下来接着练习账号的删除功能。

以下为练习笔记。

01 实现功能

①:从查询到的账号信息中,选中某个账号,点击【删除账号】按钮,从数据库中删除所选中的信息;

②:更新显示,删除数据库信息的同时更新删除当前dgv中的信息,且查询结果数值同步更新;

02 效果演示

①:取消删除

当点击【删除账号】时会弹出二次确认窗口,当点击【取消】按钮时,关闭确认弹窗;

②:确认删除

当在二次确认弹窗中选择【确认】按钮时,会删除数据库中对应的账号信息,且同步更新当先界面显示内容:

③:数据库数据

确认数据库中是否删除了账号ID=10013的账号信息:

03 实现步骤

3.1、数据访问层

删除的数据访问层比较简单,直接根据选中行的账号ID删除选中内容即可。

代码如下:

cs 复制代码
/// <summary>

/// 删除账号

/// </summary>

/// <param name="account"></param>

/// <returns></returns>

public int DeleteAccount(Account account)

{

    string sql="delete from Account where AccountId="+account.AccountId;

    return SQLHelper.Update(sql);

}

3.2、业务逻辑层

业务逻辑层同样只是传递业务,没有更多的业务处理'

代码如下:'

cs 复制代码
public int DeleteAccount(Account account)

{

    return accountServices.DeleteAccount(account);

}

3.3、UI界面层

UI界面层的代码实现也不复杂,实现思路如下:

实现思路:

①:当点击【删除账号】按钮时,首先判断是否有选中某行信息,未选中则提示先选中;

②:获得选中行的账号ID;

③:增加二次确认弹窗,确认是否删除,避免误操作;

④:调用后台代码执行删除数据库信息;

⑤:同时从缓存集合中删除选中行;

⑥:同步更细界面显示删除后的状态;

事件代码如下:

cs 复制代码
private void btnDeleteIP_Click(object sender, EventArgs e)

{

    //①:首先判断

    if (this.dgvAccountList.CurrentRow == null)

    {

MessageBox.Show("得先选中一行呀!", "雷工提示");

return;

    }

    //②:获取账号ID

    int accountId = (int)this.dgvAccountList.CurrentRow.Cells["AccountId"].Value;

    //③:二次确认

    DialogResult result = MessageBox.Show($"确认要删除编号为{accountId}的账号吗?", "雷工提醒", MessageBoxButtons.OKCancel,MessageBoxIcon.Question);

    if (result == DialogResult.Cancel) return;

    //④:调用后台

    int deleteAccount = accountManager.DeleteAccount(new Account { AccountId = accountId });

    //⑤:从缓存集合中删除

    //使用LINQ查询或扩展方法

    this.queryList.Remove(this.queryList.Where(a => a.AccountId == accountId).First());

    //⑥:同步刷新显示

    this.dgvAccountList.DataSource = null;

    this.dgvAccountList.DataSource = this.queryList;

    this.lblCount.Text = this.queryList.Count.ToString();

}

04 后记

以上为账号管理系统中账号删除的练习,比较具有通用性,实际项目开发中开发思路相同。

接下来会练习如何修改管理员的登录密码操作,有感兴趣的可以一起练习。

相关推荐
云泽80834 分钟前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范
灯澜忆梦36 分钟前
GO---可见性规则
开发语言·golang
逝水无殇1 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
这是个栗子2 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
凤凰院凶涛QAQ2 小时前
《Java版数据结构 & 集合类剖析》栈与队列:“push/pop 是栈的灵魂,offer/poll 是队列的骨架——四组 API,两种人生”
java·开发语言·数据结构
研☆香2 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript
右耳朵猫AI2 小时前
PHP周刊2026W28 | 安全更新、Laravel 13.18、Twig 3.28
开发语言·php·laravel
second602 小时前
第一部分:快速上手 —— 建立 C++ 基本语法与编程范式
开发语言·c++
郝学胜-神的一滴2 小时前
算法实战:最小k个数——大顶堆的优雅解法
开发语言·数据结构·c++·python·程序人生·算法·排序算法
bksczm3 小时前
linux之线程概念和控制
linux·开发语言·c++