哈喽,你好啊,我是雷工!
今天在交流群有朋友说起这么一个问题,要学技术,但不要沉迷于技术。
深有感触,我们要基于实际应用的角度学习技术,也可以了解一下网赚、副业、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 后记以上为删除人员信息功能的实现笔记,这次更新间隔时间有点长,主要是在搞网盘拉新的副业,时间不太够用,就有点顾不上。
接下来会及时更新。