向数据库中添加记录信息录入系统(C从入门到精通)

上传人:ji****72 文档编号:51382041 上传时间:2018-08-13 格式:PPT 页数:25 大小:150.50KB
返回 下载 相关 举报
向数据库中添加记录信息录入系统(C从入门到精通)_第1页
第1页 / 共25页
向数据库中添加记录信息录入系统(C从入门到精通)_第2页
第2页 / 共25页
向数据库中添加记录信息录入系统(C从入门到精通)_第3页
第3页 / 共25页
向数据库中添加记录信息录入系统(C从入门到精通)_第4页
第4页 / 共25页
向数据库中添加记录信息录入系统(C从入门到精通)_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《向数据库中添加记录信息录入系统(C从入门到精通)》由会员分享,可在线阅读,更多相关《向数据库中添加记录信息录入系统(C从入门到精通)(25页珍藏版)》请在金锄头文库上搜索。

1、第 16 章向数据库中添加记录信息录入 系统o向数据库中添加数据是一种常见的操作,如何将新的数据添加到 数据库中呢?本章通过向“人力资源管理系统”添加员工的操作 给大家介绍添加数据的具体方法和步骤,系统采用三层架构进行 设计,并介绍了开发过程中常见的问题及解决方法。o 系统分析o 数据库分析和设计o 系统设计o 运行系统o 在我的WinForm应用中应用本系统o 开发过程常见问题及解决o 系统分析o 数据库分析和设计o 系统设计o 运行系统o 在我的WinForm应用中应用本系统o 开发过程常见问题及解决16.1 系统分析o向数据库表中增加新记录是一种常见的操作,“人力资源管理系统” 中的主要

2、功能模块中都涉及到添加记新录到数据库表中的操作。如:o员工管理模块中添加新员工操作;n考评管理模块中添加员工的考评信息;n员工调动管理模块中添加员工的调动信息;n培训管理模块中添加员工培训的记录信息;n奖惩管理模块中添加对员工的奖惩信息等。o上面这些添加信息到数据库表中的操作基本上是类似的,在三层体系 结构中,表示层提供添加信息的录入界面,业务逻辑层实现具体的业 务逻辑,数据访问层负责把新数据添加到数据库表中。本章以添加员 工信息为例来介绍向数据库中添加记录的操作过程和代码的编写。o 系统分析o 数据库分析和设计o 系统设计o 运行系统o 在我的WinForm应用中应用本系统o 开发过程常见问

3、题及解决16.2 数据库分析和设计o添加员工信息到数据库中涉及到三个表:一个是存放员工信息的 员工信息表,其他两个是和员工信息表有外键约束的员工职位表 和员工部门表。数据库设计如下:员工信息表(EmployInfo):用来存储员工的信息。o在员工 信息表 中,字 段Sid和 Pid的值 来自职 位表和 部门表 中的字 段。列名数据类型是否空描述EIdVarchar(10)No标识列,员工编 号 ENameVarchar(10)No姓名ESexVarchar(10)No性别EBirthdayVarchar(20)Yes生日Ecardchar(18)Yes身份证Etelchar(13)Yes电话E

4、addressVarchar(30)Yes地址SidIntYes部门PidIntYes职务EwageMoneyYes薪水EnterTimeVarchar(50)Yes入职时间StateVarchar(5)Yes当前状态DimissionVarchar(50)Yes离职时间ResumeVarchar(200)Yes简历RemarksVarchar(200)Yes备注EphotoImageYes照片职位表(PostInfo):用来存储公司所有职位的名称;o列名数据类型是否空 描述Pid intno编号,自动编号postNameVarchar(10)no职务名 部门表(Section):用来存储公司

5、所有部门的信息。列名数据类型是否空 描述Sid int no编号,自动编号SectionNameVarchar(10)no部门名o 系统分析o 数据库分析和设计o 系统设计o 运行系统o 在我的WinForm应用中应用本系统o 开发过程常见问题及解决16.3 系统设计o在第15章中给出了系统的总体设计,本节在第15章的基础上,使 用LINQ 操作实现添加员工信息的操作。用HrDAL、HrBLL、 HrMamage分别表示数据访问层、业务逻辑层和表示层,DataLinq 层辅助数据库的读写操作。下面介绍代码的编写。o1. 在HrDAL数据访问层的HrDAL.cs文件中的DALEmployInfo

6、类里添 加增加记录的InsertRecord方法,编写代码如下(代码16-1- 1.txt):o2. 在HrDAL数据访问层的HrDAL.cs文件中的DALEmployInfo类里添 加获取员工标号Eid字段最大值的SelectMaxRecordNo方法,编写 代码如下(代码16-1-2.txt):o3. 在HrDAL数据访问层的HrDAL.cs文件中的DALPostInfo 类里添加从职位名称到职位编号转换的方法 SelectPIDByPName方法,这是录入职位名称时是汉字表示 的职位名称,而保存到员工信息表则职位名称在PostInfo 表中对应的编号。代码如下(代码16-1-3.txt)

7、:o4. 在HrDAL数据访问层的HrDAL.cs文件中的DALPostInfo 类里添加返回表DALPostInfo的全部记录,并存放在IList 中的方法如下(代码16-1-4.txt):o5. 在HrDAL数据访问层的HrDAL.cs文件中的 DALSectionInfo类里添加从部门名称到部门编号转换的方 法SelectSIDBySName方法,这是因为我们录入的部门名称 是汉字表示的名称,而保存到员工信息表中则是部门名称 对应的编号。代码如下(代码16-1-5.txt):o6. 在HrDAL数据访问层的HrDAL.cs文件中的 DALSectionInfo类里添加返回表Section

8、的全部记录, 存放在IList中的方法如下(代码16-1-6.txt):o7. 在业务逻辑层,分别添加如下方法以调用1-4步中添 加到数据访问层中的方法。o在项目HrBLL中HrBLL.cs文件的BLLEmployInfo添加代码 如下(代码16-2-1.txt):o在项目HrBLL中HrBLL.cs文件的BLLPostInfo添加代码如 下(代码16-2-2.txt):o在项目HrBLL中HrBLL.cs文件的BLLSectionInfo添加代 码如下(代码16-2-3.txt):o8. 在表示层:设计Windows Form用来添加员工记录,控 件名称和属性设置见源代码,窗体上控件如下:o

9、(1)编写代码实现添加输入的记录到数据库中,代码如下 。o 在窗体AddEmployInfo类中添加方法happen用于将输入 的记录内容赋给定义的变量。o 编写【添加】按钮的单击事件处理程序,实现添加记 录(代码16-3-3.txt)。o 编写添加照片的链接单击事件处理程序(代码16-3- 4.txt)。o 编写AddEmployInfo的Load事件处理程序,实现初始化 窗体(代码16-3-5.txt)。o 系统分析o 数据库分析和设计o 系统设计o 运行系统o 在我的WinForm应用中应用本系统o 开发过程常见问题及解决16.4 运行系统o运行程序出现添加记录窗体,按要求输入所需数据,

10、单击添加按 钮,运行结果如下:o 系统分析o 数据库分析和设计o 系统设计o 运行系统o 在我的WinForm应用中应用本系统o 开发过程常见问题及解决16.5 在我的Windows窗体应用程序中应用本系统o本章编写的添加新员工信息小模块中的数据访问层和业务逻辑层 的代码不需做任何改动就可用在整个“人力资源管理系统”项目 开发中,表示层部门分需要稍微改动以适合项目的整体要求。o 系统分析o 数据库分析和设计o 系统设计o 运行系统o 在我的WinForm应用中应用本系统o 开发过程常见问题及解决16.6 开发过程常见问题及解决o开发过程中经常出现的问题和解决方案如下:o1. 输入数据的验证,如

11、身份证号码、电话号码等。o解决方法是使用正则表达式,如下:o 导入正则表达式名称空间o01 using System.Text.RegularExpressions;o 定义验证的正则表达式o01 Regex r = new Regex(“d17d|X|d15“);/ 用于验证身份证是否合法o01 Regex r1 = new Regex(“(d3)|d3-)?d8“); /用于验证电话号码o02 Regex r2 = new Regex(“1-9d*.d*|0.d*1- 9d*|0?.0+|0$“);/用于验证工资是否符合要求o 编码进行验证,如oif (r.IsMatch(txtIDCar

12、d.Text) = false) /如果txtIDCard中的值 不符合定义的正则表达式要求,返回falseo MessageBox.Show(“身份证不正确!“); o if (r1.IsMatch(txtTelephone.Text) = false)o MessageBox.Show(“电话号码不正确!“); o if (r2.IsMatch(txtGz.Text) = false)o MessageBox.Show(“工资格式不正确!“); o2. 保存图像到数据库图像字段。o 定义全局变量ostring fileName = null;/用于存放照片的文件名obyte imgByte

13、s = null;/用于将照片图片转为byte数组写入数 据库o 通过打开文件对话框控件,选择图片文件,并显示在pictureBox中。othis.openFileDialog1.Filter = “*.jpg|*.JPG|*.gif|*.GIF|*.bmp|*.BMP“;o if (openFileDialog1.ShowDialog() = DialogResult.OK)o o fileName = openFileDialog1.FileName;o this.pictureBox1.ImageLocation = fileName;o o 利用文件流读图片文件,将二进制的图片内容读入

14、byte数组中oFileStream fs = new FileStream(fileName, FileMode.Open);o imgBytes = new bytefs.Length;o BinaryReader br = new BinaryReader(fs);o imgBytes = br.ReadBytes(Convert.ToInt32(fs.Length); o o3. 自动生成可用员工编号,避免员工编号重复引起主键冲突导致 添加失败。解决方法是读取数据库表中员工编号字段的最大值, 生成的新员工编号是员工编号字段的最大值加1的实现代码如下:o 在数据访问层添加得到员工编号最大

15、值的方法,注意EmployeeInfo表中员工编号字段EID是字符型,为了得到最大值需要转为整型。opublic int SelectMaxRecordNo()o /得到EmployInfo中Eid字段的最大值,便于添加记录时自动生成Eid 字段的值避免出错。o tryo /利用LINQ查询得到EmployInfo中Eid字段的最大值作为方法的返回 值o return (from maxEID in objDataContext.EmployInfo select (Convert.ToInt32 ( maxEID.Eid).Max() ;o o catch (Exception ex)o o throw ex;o o o 在业务逻辑层添加业务代码opublic int SelectMaxRecordNo()o /返回Eid的最大编号o return (new HrDAL.DALEmployInfo().SelectMaxRecordNo(); o o 表示层使用业务逻辑层的方法SelectMaxRecordNo()txtGH.Text = (objEmployee1.SelectMaxRecordNo()+1).ToString() ;oSee you later

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号