MFC:Microsoft Foundation Classes (微软基础类库)

基本思路:

使用Microsoft Access建立数据库,然后使用VS2015其进行连接与一些基本操作:

显示、增加、删除、排序、筛选

<文章最后会给出本工程文件压缩包的下载地址>

************************************************************************************************************************************

 一:运行结果示范

1> 基本界面:

2> 增加记录

3> 删除记录(直接删除当前的数据,并移到下一个数据)

4> 排序(按照基本工资)

5> 筛选记录(按照基本工资筛选)

二:具体操作步骤

1> 使用Microsoft Access建立基本数据库

2> 为表格配置数据源(ODBC)

* 开放数据库连接(Open Database Connectivity,ODBC

控制面板 -> 管理工具(在系统与安全中,如果找不到直接在控制面板页面搜索即可) -> 双击数据源 -> 点击添加(如图所示)

然后选择刚刚创建的数据库文件( .accdb ) ,然后填上数据源名点击确定

到此,已经完成了数据源的配置(已经做好了让VS连接Access的准备)

3> 新建MFC程序

选择单个文档:

然后下一步直到以下界面:

然后点击下一步,找到自己刚刚创建的数据库文件:

然后会再跳出这个页面,继续选择刚刚的数据库文件,点击确定:

在跳出一个警告框后,就会在你的数据库文件同名目录下新建一个数据源文件:

选择数据库中的表,即可完成这一步的配置:

然后直接点击完成,后面的设置直接默认:(这里有一个安全问题的警告会后面在解决)

4> 窗体界面的打开与构建

使用VS主界面最右侧的工具箱进行添加(如果没有工具箱,视图-> 工具箱打开)

设置成果图:

5> 为每个编辑框绑定数据源

(将数据库中的数据和编辑框中需要显示的数据进行关联,方便修改与显示)

1.首先右键编辑框,对每个数据框进行改名:

2.全部改名完成后,使用代码将二者进行绑定

代码部分:

void C人事管理系统View::DoDataExchange(CDataExchange* pDX)
{CRecordView::DoDataExchange(pDX);// 可以在此处插入 DDX_Field* 函数以将控件“连接”到数据库字段,例如// DDX_FieldText(pDX, IDC_MYEDITBOX, m_pSet->m_szColumn1, m_pSet);// DDX_FieldCheck(pDX, IDC_MYCHECKBOX, m_pSet->m_bColumn2, m_pSet);// 有关详细信息,请参阅 MSDN 和 ODBC 示例DDX_FieldText(pDX, IDC_EDIT_JL, m_pSet->column_JL, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGBH, m_pSet->column_ZGBH, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGNL, m_pSet->column_ZGNL, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGXB, m_pSet->column_ZGXB, m_pSet);DDX_FieldText(pDX, IDC_EDIT_GZSJ, m_pSet->column_GZSJ, m_pSet);DDX_FieldText(pDX, IDC_EDIT_SZBM, m_pSet->column_SZBM, m_pSet);DDX_FieldText(pDX, IDC_EDIT_Salary, m_pSet->column_JBGZ, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZGXM, m_pSet->column_ZGXM, m_pSet);DDX_FieldText(pDX, IDC_EDIT_ZC, m_pSet->column_ZC, m_pSet);
}

绑定的时候,第二个参数是编辑框的ID,第三个参数是数据库的表中的列名,列名默认为column1~n,可以在以下头文件中修改:

代码部分:

 long    column_ZGBH;CStringW    column_ZGXM;CStringW    column_ZGXB;CStringW    column_SZBM;long    column_ZGNL;CStringW    column_GZSJ;    //这里设置为时间总是一大堆bug,将时间类型改为CStringW类型也OKlong   column_JBGZ;CStringW    column_ZC;CStringW  column_JL;

3.修改错误部分,并初步运行显示数据库数据

双击该错误进行定位,然后将其注释掉:

至此,已经可以初步显示并进行修改了(修改后的数据会直接同步到数据库中)

六:实现记录的增加

<本篇文章将使用弹出一个新的窗体的方式来实现数据库中数据的增加,因为不使用这种方法,会产生各种各样的Bug>

1.右键新建一个窗体并对其进行一系列操作

复制第一个窗体的空间到这里来:

为新建的窗体添加一个类:

2.打开ADD.h,添加公有数据成员:

代码部分:

 long    column_ZGBH;CStringW    column_ZGXM;CStringW    column_ZGXB;CStringW    column_SZBM;long    column_ZGNL;CStringW    column_GZSJ;    //这里设置为时间总是一大堆bug,将时间类型改为CStringW类型也OKlong   column_JBGZ;CStringW    column_ZC;CStringW  column_JL;

再打开ADD.cpp文件(注意要在该文件中包含ADD.h头文件)

代码部分:

void ADD::DoDataExchange(CDataExchange* pDX)
{CDialogEx::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT_JL, column_JL);DDX_Text(pDX, IDC_EDIT_ZGBH, column_ZGBH);DDX_Text(pDX, IDC_EDIT_ZGNL, column_ZGNL);DDX_Text(pDX, IDC_EDIT_ZGXB, column_ZGXB);DDX_Text(pDX, IDC_EDIT_GZSJ, column_GZSJ); DDX_Text(pDX, IDC_EDIT_SZBM, column_SZBM);DDX_Text(pDX, IDC_EDIT_Salary, column_JBGZ);DDX_Text(pDX, IDC_EDIT_ZGXM, column_ZGXM);DDX_Text(pDX, IDC_EDIT_ZC, column_ZC);//下面的函数声明只能对于数据库元框架有效,对于额外定义的窗体,可以使用上面的方式//DDX_FieldText(pDX, IDC_EDIT_JL, m_pSet->column_JL, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_ZGBH, m_pSet->column_ZGBH, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_ZGNL, m_pSet->column_ZGNL, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_ZGXB, m_pSet->column_ZGXB, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_GZSJ, m_pSet->column_GZSJ, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_SZBM, m_pSet->column_SZBM, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_Salary, m_pSet->column_JBGZ, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_ZGXM, m_pSet->column_ZGXM, m_pSet);//DDX_FieldText(pDX, IDC_EDIT_ZC, m_pSet->column_ZC, m_pSet);
}

3.双击主窗体的“增加记录”Button进入相应单击事件代码区域:

代码部分:

void C人事管理系统View::OnBnClickedButtonAdd()
{// TODO: 在此添加控件通知处理程序代码ADD add;if (add.DoModal() == IDOK){m_pSet->AddNew();m_pSet->column_GZSJ = add.column_GZSJ;m_pSet->column_ZGXM = add.column_ZGXM;m_pSet->column_ZGXB = add.column_ZGXB;m_pSet->column_ZGNL = add.column_ZGNL;m_pSet->column_JL = add.column_JL;m_pSet->column_ZC = add.column_ZC;m_pSet->column_JBGZ = add.column_JBGZ;m_pSet->column_SZBM = add.column_SZBM;m_pSet->column_ZGBH = add.column_ZGBH;//这两个用来更新数据库中显示的内容并重新提取数据m_pSet->Update();m_pSet->Requery();//数据移动到最后一个m_pSet->MoveLast();//更新显示视图UpdateData(FALSE);}
}

到这里已经可以实现数据库中的记录的增加了(运行截图就像文章开头那样)~

<到这里一路上一定会遇到各种各样Bug,有的可能没有解决,在文章最后会附上工程关键文件源码下载地址,选择使用>

七:实现记录的删除

void C人事管理系统View::OnBnClickedButtonDelete()
{// TODO: 在此添加控件通知处理程序代码m_pSet->Delete();m_pSet->MoveNext();if (m_pSet->IsEOF()){m_pSet->MoveLast();}if (m_pSet->IsEOF()){m_pSet->SetFieldNull(NULL);}UpdateData(FALSE);}

八:实现记录的筛选

1> 首先新建一个窗体,为添加相应的类,在新定义头文件所对应的.cpp文件中进行编辑框与数据的绑定 

绑定代码部分:

void SELECT::DoDataExchange(CDataExchange* pDX)
{CDialogEx::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT_SELECT, search_value);   //选框与数据变量的绑定
}

九:实现记录的排序

双击主窗体的"排序记录"Button:

void C人事管理系统View::OnBnClickedButtonSort()    //按照基本工资排序
{// TODO: 在此添加控件通知处理程序代码m_pSet->m_strSort = "基本工资";m_pSet->Requery();UpdateData(FALSE);
}

十:完整源码(下载地址)

https://download.csdn.net/download/qq_42292831/10869046

C++ MFC人事管理系统相关推荐

  1. java 人事_java版简易人事管理系统

    [实例简介] 通过对java的学习.用开发工具开发的一款简易人事管理系统 [实例截图] [核心代码] 386393HMSs └── HMSs ├── bin │   ├── com │   │   └ ...

  2. Spring Boot实战系列《六》:人事管理系统的登录设计

    Spring Boot实战系列<六>:人事管理系统的登录设计 Spring Boot实战系列<六>:人事管理系统的登录设计 1.前言 在上一篇中教大家在IEDA或者eclips ...

  3. 企业管理系统java web_JavaWeb 基于 web的 企业人事管理系统 Jsp/Servlet 242万源代码下载- www.pudn.com...

    文件名称: JavaWeb下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 8310 KB 上传时间: 2015-07-16 下载次数: 0 提 供 者: 汪伟棋 ...

  4. jsp人事管理系统_Jsp+Ssm+Mysql实现的医院人事管理系统源码附带视频运行教程

    项目地址: jsp+ssm+mysql实现的医院人事管理系统源码附带视频运行教程|猿来入此[beta]多用户版IT项目教程源码分享网站​www.yuanlrc.com 今天给大家演示的是一款由jsp+ ...

  5. mysql人事管理系统源代码_人事管理系统(源代码.doc

    人事管理系统(源代码 附录: 毕业设计程序清单 设计题目 人事管理系统 教 学 班: 学生姓名: 学 号: 指导教师: 完成日期: Option Explicit Dim Bupdata As Boo ...

  6. java企业人事管理系统源码_企业人事管理系统完美版源代码 - 源码下载|行业应用软件|企业管理(财务/ERP/EIP等)|源代码 - 源码中国...

    企业人事管理系统完美版源代码 ............................\DataEnvironment.DCA ............................\DataEnv ...

  7. java 课程设计数据库_人事管理系统(java数据库课程设计)+SQL数据库

    [实例简介] 员工各种信息:包括员工的基本信息,如编号.姓名.性别.学历.所属部门.毕业院校.健康情况.职称.职务.奖惩等:员工各种信息的修改:对转出.辞退.退休员工信息的删除:按照一定条件,查询.统 ...

  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的企业人事管理系统

    项目功能: 人事管理系统包括后台管理员登录,用户管理,部门管理,职位管理,员工管理,公告管理,文档管理等模块 页面效果:

  9. 【毕设】jsp+基于JB的人事管理系统(源代码+论文)

    文章目录 目录 系统设计 系统实现 源文件 目录 系统设计 3.1 需求分析 通过调查,根据人事管理的基本需求,要求系统需要完成以下功能: 详细的企业的员工信息管理: 企业员工奖惩信息管理: 企业员工 ...

  10. 基于Android的人事管理系统开发与设计源码(一)

    基于Android开发的人事管理系统 链接:https://blog.csdn.net/yql_617540298/article/details/108553842 上面的链接详细的介绍整个项目,是 ...

最新文章

  1. CoordinatorLayout 和 AppBarLayout 实现的局部点击按钮实现折叠和展开
  2. 基于HTML5实现3D热图Heatmap应用
  3. spring 定时任务执行两次解决办法
  4. linux——samba共享以及基础用法
  5. kafka分区及副本在broker的分配
  6. 工作71:nexttick使用
  7. python数据分析常用类库(1.1)
  8. jenkins pipeline之如何串联多个Job
  9. table height 100%问题
  10. jdk8升级jdk11报 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
  11. 微博表情 文本与图片对照表
  12. jquery html 兼容ie8,IE浏览器 对 jquery版本的兼容性 支持
  13. 按键精灵根据图片查找技巧
  14. 基本知识 100101
  15. vue时间过滤器(moment)
  16. HDUOJ---携程员工运动会场地问题
  17. NADH二钠CAS 606-68-8的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. 奇安信 测试开发岗位 面经 2019.9.11(秋招)
  19. 【原创】更相减损术 stein算法 欧几里得算法 拓展欧几里得算法 扩展欧几里得算法 逆元的计算与筛法 解模线性方程
  20. 计算机毕业设计Java互联网校园家教兼职平台(源码+系统+mysql数据库+lw文档)

热门文章

  1. 数列收敛,极限值唯一
  2. 清除xcode缓存文件以及清楚mac 微信缓存
  3. Subversive-connectors 下载地址
  4. jsp 弹出窗口设置大全
  5. SQLMAP 脱库过程(post请求,三种方法)
  6. hadoop大数据生态概述
  7. 三菱GXWorks2 程序写入CPU之前准备工作
  8. 淘宝APP购物车测试用例
  9. Hadoop入门(一)
  10. 【Scratch案例实操】scratch大鱼吃小鱼(完整详案) scratch编程案例教学 scratch创意编程 少儿编程教案