网站首页 > 开源技术 正文
哈喽,你好啊,我是雷工!
对于人员管理系统来说,查询是很重要的模块,接下来练习按组织查询人员信息;
以下为练习笔记。
01 效果演示
①当未选择所属组织时,点击【提交查询】按钮,提示“请选择所属组织”;
②当选择所属组织,然后点击【提交查询】按钮,在列表中显示查询到的该组织的所有人员信息;
02 实现步骤
2.1、数据访问方法
按照分层架构的开发方法,首先完成数据访问方法的编写;
首先在数据访问层的人员信息访问类PeopleServer中添加相关方法;
代码如下:
/// <summary>
/// 根据组织查询人员信息
/// </summary>
/// <param name="groupName">组织名称</param>
/// <returns>返回人员信息列表</returns>
public List<People>GetPeoplesByGroup(string groupName)
{
string sql = "select PeopleId,PeopleName,Gender,Birthday,PeopleIdNo,PhoneNumber,GroupName from Peoples ";
sql += "inner join PeopleGroup on Peoples.GroupId=PeopleGroup.GroupId ";
sql += "where GroupName='{0}'";
sql = string.Format(sql,groupName);
SqlDataReader objReader = SQLHelper.GetReader(sql);
List<People> peoList = new List<People>();
while(objReader.Read())
{
peoList.Add(new People()
{
PeopleId = Convert.ToInt32(objReader["PeopleId"]),
PeopleName = objReader["PeopleName"].ToString(),
Gender = objReader["Gender"].ToString(),
PhoneNumber = objReader["PhoneNumber"].ToString(),
Birthday = Convert.ToDateTime(objReader["Birthday"].ToString()),
IdNumber = objReader["PeopleIdNo"].ToString(),
GroupName = objReader["GroupName"].ToString()
});
}
objReader.Close();
return peoList;
}
2.2、所属组织
在子窗体加载时自动查询数据库内组织信息,添加到所属组织选择下拉框中;
该功能在添加人员的功能模块中有过相关记录;
①在子窗体的代码界面添加需要的命名空间;
using DAL;
using Models;
②创建数据访问对象
private GroupService objGroupService = new GroupService();
private PeopleServer objPeoServer = new PeopleServer();
③初始化组织下拉框
public FrmPeopleManage()
{
InitializeComponent();
this.BackColor = Color.FromArgb(0, 25, 71);
//初始化组织选择下拉框
this.cboGroup.DataSource = objGroupService.GetAllGroups();
this.cboGroup.DisplayMember = "GroupName";//设置下拉框显示文本
this.cboGroup.ValueMember = "GroupId";//设置下拉框显示文本对应的值
this.cboGroup.SelectedIndex = -1;//设置不选中任意组织
this.dgvPeopleList.AutoGenerateColumns = false;//禁止自动生成列
}
注意:该段代码与添加人员中的自动查询加载组织名称下拉框的代码一样,可以直接复制过来;
2.3、按照组织查询
①:首先在UI界面的对应按钮【提交查询】上双击,生成提交查询事件代码;
②检验所属组织已选择;
③执行查询并将查询结果绑定到列表控件;
代码如下:
//按照组织查询
private void btnQuery_Click(object sender, EventArgs e)
{
if(this.cboGroup.SelectedIndex==-1)
{
MessageBox.Show("请先选择所属组织!", "雷工提示");
return;
}
//执行查询并绑定数据
this.dgvPeopleList.DataSource = objPeoServer.GetPeoplesByGroup(this.cboGroup.Text);
}
2.4、添加行号
为查询列表的查询结果添加行号,与添加人员模块中的实现一样
①选中DataGridView控件,在属性-事件-找到【RowPostPaint】,然后在其后面双击,生成相关事件代码
②然后将添加人员界面中添加行号的代码复制过来即可:
//为列表控件添加行号
private void dgvPeopleList_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
Common.DataGridViewStyle.DgvRowPostPaint(this.dgvPeopleList, e);
}
03 调试问题处理
调试中出现查询结果中,身份证号列的内容未显示,
解决办法:
是因为控件编辑列中数据绑定的列名与数据源对象中的列名不一致,修改为一致后则正常显示;
04 后记
以上为按照所属组织查询人员列表的实现过程,关于表格的样式还可以优化样式使其更美观,
你在项目中使用过哪些好用的功能,欢迎在评论区留言或在交流群探讨。
猜你喜欢
- 2024-10-21 C#实战|人员管理系统[13]:修改密码功能的实现
- 2024-10-21 mybatis-plus sql注入原理(3.0.1)
- 2024-10-21 C#实战|人员管理系统[33]:实现删除人员信息的功能
- 2024-10-21 C#实战|人员管理系统[32]:修改人员信息的实现
- 2024-10-21 实例讲解MyBatisPlus自定义sql注入器方法
- 2024-10-21 SQL辅助类(sql添加辅助数据库文件)
- 2024-10-21 C#知识|账号管理系统:使用带参数的SQL语句编程添加账号的方法。
- 2024-10-21 SQL注入攻防入门详解(简单的sql注入攻击教程)
- 2024-10-21 SQL - 编写SqlHelper帮助类,简化数据操作代码 173
- 2024-10-21 ADO.Net-SQLHelper帮助类 158(帮助列表)
你 发表评论:
欢迎- 03-19基于layui+springcloud的企业级微服务框架
- 03-19开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- 03-19SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- 03-19SpringBoot+LayUI后台管理系统开发脚手架
- 03-19layui下拉菜单form.render局部刷新方法亲测有效
- 03-19Layui 遇到的坑(记录贴)(layui chm)
- 03-19基于ASP.NET MVC + Layui的通用后台开发框架
- 03-19LayUi自定义模块的定义与使用(layui自定义表格)
- 最近发表
-
- 基于layui+springcloud的企业级微服务框架
- 开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- SpringBoot+LayUI后台管理系统开发脚手架
- layui下拉菜单form.render局部刷新方法亲测有效
- Layui 遇到的坑(记录贴)(layui chm)
- 基于ASP.NET MVC + Layui的通用后台开发框架
- LayUi自定义模块的定义与使用(layui自定义表格)
- Layui 2.9.11正式发布(layui2.6)
- Layui 2.9.13正式发布(layui2.6)
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)