编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

C#实战|人员管理系统[33]:实现删除人员信息的功能

wxchong 2024-10-21 13:04:16 开源技术 59 ℃ 0 评论

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

今天在交流群有朋友说起这么一个问题,要学技术,但不要沉迷于技术。

深有感触,我们要基于实际应用的角度学习技术,也可以了解一下网赚、副业、AI知识的学习了解。

不要为了学习而学习。要为了提升,开阔眼界而学习。

接下来继续练习人员管理系统。前面实现了人员信息的添加,查询,修改功能的实现,接下来练习删除功能。

以下为练习笔记。

01 效果演示

在人员列表中选中某条人员信息,然后点击【删除】按钮,弹出二次确认窗口,确认是否要删除?

当点击【确定】按钮时,将选中的人员信息从数据库中删除,当点击【取消】按钮时,则关闭确认弹窗,无其他操作。

02 实现步骤

2.1、删除方法

在PeopleServer中添加删除人员的方法

方法①

/// <summary>

/// 根据人员编号删除人员对象

/// </summary>

/// <param name="peopleId"></param>

/// <returns></returns>

/// <exception cref="Exception"></exception>

public int DeletePeople(string peopleId)

{

 string sql = "delete from Peoples where PeopleId=" + peopleId;

 try

 {

 return SQLHelper.Update(sql);

 }

 catch (SqlException ex)

 {

 if(ex.Number==547)

 {

 throw new Exception("该编号被其他实体引用,不能直接删除该人员对象!");

 }

 else

 {

 throw new Exception("删除人员对象发生数据操作异常:\r\n"+ex.Message);

 }

 }

 catch(Exception ex)

 {

 throw ex;

 }

}

方法②基于对象的方式

/// <summary>

/// 根据人员编号删除人员对象[以对象方式]

/// </summary>

/// <param name="peopleId"></param>

/// <returns></returns>

/// <exception cref="Exception"></exception>

public int DeletePeople(People objPeople)

{

 string sql = "delete from Peoples where PeopleId=" + objPeople.PeopleId;

 try

 {

 return SQLHelper.Update(sql);

 }

 catch (SqlException ex)

 {

 if(ex.Number==547)

 {

 throw new Exception("该编号被其他实体引用,不能直接删除该人员对象!");

 }

 else

 {

 throw new Exception("删除人员对象发生数据操作异常:\r\n"+ex.Message);

 }

 }

 catch(Exception ex)

 {

 throw ex;

 }

}

2.2、删除事件

2.2.1、实现思路

①创建事件;

②检查列表中是否存在信息;

③检查是否有选中某个人员的信息;

④删除前弹窗二次确认;

⑤选【取消】则不做操作;

⑥选【确定】则获取人员编号,

2.2.2、实现步骤

①在人员信息管理窗口FrmPeopleManage中,双击【删除】按钮,生成删除按钮事件代码;

②代码如下:

private void btnDel_Click(object sender, EventArgs e)

{

 if(this.dgvPeopleList.RowCount==0)

 {

 MessageBox.Show("列表中无任何信息!","雷工提示");

 return;

 }

 if(this.dgvPeopleList.CurrentRow==null)

 {

 MessageBox.Show("还未选中要删除的人员行!", "雷工提示");

 return;

 }

 //删除前二次确认

 DialogResult result = MessageBox.Show("确定要删除该人员信息吗?","雷工提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);

 if (result == DialogResult.Cancel) return;

 //获取人员编号

 string peopleId = this.dgvPeopleList.CurrentRow.Cells["PeopleId"].Value.ToString();

 try

 {

if(objPeoServer.DeletePeople(peopleId)==1)

{

 //同步刷新(本方法数据较少时可用,实际项目应用较少)

 btnQuery_Click(null, null);

}

 }

 catch (Exception ex)

 {

 MessageBox.Show(ex.Message,"雷工提示");

 }

}

03 界面防闪烁

当界面中使用图片太多,或者图片的分辨率太高时,当界面刷新重绘的时候,会导致看上去闪烁的问题,曾经有朋友在留言区问过这个问题。

通过网络搜索,测试,通过在闪烁的窗体的代码中加入一段防抖代码即可解决该问题,经测试有效,现将代码贴到下方:

代码如下:

//欢迎,点赞,留言,需要可找,小编,要


04 后记

以上为删除人员信息功能的实现笔记,这次更新间隔时间有点长,主要是在搞网盘拉新的副业,时间不太够用,就有点顾不上。

接下来会及时更新。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表