基于ASP Net技术的招聘系统设计与实现.docx
基于ASP.NET人才招聘系统设计与实现摘要:人才招聘网是全球网络化的基础上,对应各个企业需求人才且各个方面的人才急需寻找一份证明自身 价值的工作的现状,利用网络的便捷为各个公司寻找符合其需求的各种专业人才同时也为各个专业的人才寻 找到一份体现自身价值的工作。人才招聘网站系统的设置严格遵照市场及公司需求,以确保达到“人尽其用” 的预定目标。它不仅仅简单的涉及了普通浏览用户、注册用户、注册公司等三个层次的人员;还涉及了各种 用户与注册公司的互动询问等,以确保用户对公司发布的各类招聘信息资源的高效利用。本论文论述了人才招聘网站系统的开发流程,包括招聘信息管理、登录公司管理、注册用户管理、询问系统管理等四大模块,同时分为普通浏览用户、注册用户、注册公司、管理员四个身份等级。本项目基于.Net 2008平台,应用多层框架技术实现。该系统为企业公司寻求合适的专业人才,注册用户寻 找合适的就职企业,普通浏览用户查询就业信息,增加就业机会。同时为实现人才正常流动的信息化、网络化、智能化提供了有力的支持。关键字:人才招聘 网站系统 .NET C#目录摘要目录1 前 言41.1 项目建设背景 41.2 项目开发目标 41.3 论文结构 52 三 层 架 构 概 述 52.1 系统三层框架模型 52.2 三层框架核心代码实现 62.2.1 DAL 层 62.2.2 DAL 层实现 82.2.3 BLL 层实现 223 系 统 分 析 与 设 计 313.1 系统开发的运行平台与开发工具 313.1.1 系统开发环境 313.1.2 系统开发工具 313.2 系统需求分析与设计 323.2.1 系统功能性描述 323.3 系统数据库表设计 333.3.1 数据库表的逻辑设计 333.3.2 数据库表的设计文档 333.4 系统框架设计 353.4.1 系统项目开发结构 353.4.2 系统功能模块汇总表 364 系 统 流 程 分 析 与 功 能 实 现 384.1 系统流程概述 384.2 后台管理系统流程概述 435 总 结 与 展 望 475.1 总结 475.2 展望 47致 谢 48参 考 文 献 491. 前言1.1 项目建设背景人才招聘网是全球网络化的基础上,对应各个企业需求人才且各个方面的人 才急需寻找一份证明自身价值的工作的现状,利用网络的Q为各个公司寻找符 合其需求的各种专业人才同时也为各个专业的人才寻找到一份体现自身价值的 工作。人才招聘网站系统的设置严格遵照市场及公司需求,以确保达到“人尽其 用”的预定目标。它不仅仅简单的涉及了普通浏览用户、注册用户、注册公司等 三个层次的人员;还涉及了各种用户与注册公司的互动询问等,以确保用户对公 司发布的各类招聘信息资源的高效利用。但是,目前的一般的人才招聘会还不能实现授课计划的制定和质量监控的信息化、网络化、智能化,主要表现如下:1. 在传统的人才招聘会限制于场地以及天气、费用、时间等各个方面的因素,并不能将参会的各类专业人才的信息进行详细的分析处理;2. 传统的人才招聘会往往受到地域的限制,许多拥有专业素质的人才因为路况天气等原因无法感到会场,致使一些专业人才错失工作机会;3. 同样,由于场地的限制,有些求职者即使到达了招聘会现场,往往一天下来也不能进行几次应聘,以至于应聘效果不理想;4. 在传统的招聘会上,有些小企业无法与大公司竞争,使企业的招聘效果大打折扣;5. 传统的招聘会因为信息地域等各个方面的因素,具有局限性,公司并不能通过其全面的搜索人才。针对以上弊病,结合本人实际情况,开发了人才招聘网站系统,用来提高企 业公司招聘人才的效率和增加各类专业人才的就业机会,为大学生等一系列待业人士提供有力支持,全面推进高质量、高水平、高效率的人才招聘管理,使人才招聘管理向着“规范化、信息化、网络化”方向发展。1.2 项目开发目标通过长期的教学管理和质量监控工作的实践以及教务处对教师教学工作量 的核算要求及教学档案归档要求,确定系统的目标是建立一个人才招聘网站系 统。此系统能使整个校园网乃至 Internet 上的用户都可访问,而且用户可在多 地域、任意时间段以不同身份来访问人才招聘网站系统中的各类招聘信息。此系统具体应达到以下目标:1. 能全面掌握各个注册公司发布的招聘信息,为各类待业人员寻求就职岗位提供高效保证;2. 任何用户都能通过查询模式、浏览模式等方便地查找、筛选和统计所需要的招聘信息;3. 能为各类待业人员提供入职申请等服务,同时为各个公司提供待业人员的基本信息;4. 能适时监控各类用户的活动情况;5. 能够实现注册用户、注册公司及管理员三者之间的交流与沟通;6. 能设置权限,即设置注册用户、普通浏览用户、注册公司的管理权限。1.3 论文结构一、项目概述,简要介绍了人才招聘网站系统的建设背景与开发目标,并介绍了项目的总体功能与论文结构。二、三层框架模型的核心代码实现。三、系统分析与设计,介绍了系统开发的运行平台与开发工具、系统总体需 求分析及系统界面设计、数据库设计等。四、 系统流程分析及功能实现,介绍了系统的操作流程,并重点介绍了后 台管理和注册用户功能模块的程序实现。五、 总结与展望,介绍了人才招聘网站系统的优点及应用效果,并对本文 所做工作的总结并提出了下一步需要完成的工作。2. 三层架构概述2.1 系统三层框架模型在本系统中,充分考虑项目的易维护性和开发的规范性,降低后续开发成本, 真正实现软件工程理论中“高内聚,低耦合”的设计思想,系统选用了多层架构 的设计手段。将不同功能逻辑单元分别放在不同的层面进行开发。具体在项目中分为三层结构,具体描述为:1.Web 表示层:在该层主要实现页面 GUI 的设计,完成与用户的信息交互。2.BLL 业务逻辑层:在以上各层的支撑下,最后在该层实现具体业务逻辑。3.DAL 数据访问层:实现对数据库中特定表的特定操作。简单的说法就是 实现对数据表的增、删、查、改等操作。同时通过 SQLHelper 数据库助手类在该层实现对数据库底层的各种操作,通过反射机制建立数据库的连接,在配置文件中实现配置连接不同的数据库。基于此结构另外系统中拓展的模型,描述为:4.Model 数据模型层:数据模型层实现对数据库关系表的对象转化过程,将每张表对对应定义为一个类,在系统中以该类的实例化对象,实现数据在各个层次间的数据传输。2.2 三层框架核心代码实现2.2.1、 DAL层,数据库助手类 SQLHelperusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration;namespace DALpublic classprivateprivateprivateSQLHelperSqlConnection conn = null ;SqlCommand cmd =null;SqlDataReader sdr =null;public SQLHelper()string connStr =ConfigurationManager.ConnectionStrings "connStr".ConnectionString;conn =new SqlConnection(connStr);private SqlConnection GetConn()if (conn.State = ConnectionState.Closed) conn.Open();return conn;/<summary>/ 执行不带参数的增删改SQL语句或存储过程/</summary>/<param name=“cmdText”>增删改SQL语句或存储过程</param>/<param name="ct">命令类型</param>/<returns></returns>public int ExecuteNonQuery (string cmdText, CommandType ct)int res;trycmd = new SqlCommand(cmdText,GetConn(); cmd.CommandType =ct;res =cmd.ExecuteNonQuery();catch (Exception ex)throw ex;finallyif (conn.State = ConnectionState.Open) conn.Close();return res;/<summary>/ 执行带参数的SQL增删改语句或存储过程/</summary/<param name=”sql”>SQL增删改语句或存储过程</param>/<param name="paras">命令类型</param>/<returns></returns>public int ExecuteNonQuery( string sql, SqlParameter paras ,CommandType ct)int res;using (cmd= new SqlCommand (sql,GetConn()cmd.CommandType =ct;cmd.Parameters.AddRange(paras);res =cmd.ExecuteNonQuery();return res;/<summary>/ 该方法执行传入的SQL查询语句或存储过程/</summary>/<param name="cmdText">执行传入的SQL查询语句或存储过程 </param>/<param name=”ct”>命令类型</param>/<returns></returns>public DataTable ExecuteQuery(string cmdText, CommandType ct)DataTable dt =new DataTable();cmd= new SqlCommand(cmdText,GetConn();cmd.CommandType =ct;using (sdr =(CommandBehavior.CloseConnection)dt.Load(sdr);return dt;cmd.ExecuteReader/<summary>/ 执行带参数的查询SQL语句或存储过程/</summary>/<param name="cmdText">查询SQL语句或存储过程</param>/<param name="paras">参数集合</param>/<param name="ct">命令类型</param>/<returns></returns>public DataTable ExecuteQuery (string cmdText, SqlParameterparas, CommandType ct)DataTable dt = new DataTable();cmd= new SqlCommand(cmdText,GetConn();cmd.CommandType =ct;cmd.Parameters.AddRange(paras);using (sdr cmd.ExecuteReader(CommandBehavior. CloseConnection)dt.Load(sdr)return dt;2.2.2、DAL 层实现数据库对表(CategoryDAO、CommentDAO、CompanyManageDAO、 ManageDA0、UserManageDAO)的基本操作/*招聘信息类别表的操作类*王溢文*/using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using Model;namespace DAL/<summary>/ 招聘信息类别表的操作类/</summary>public class CategoryDA0private SQLHelper sqlhelper =null;public CategoryDA0()1sqlhelper = new SQLHelper();/<summary>/ 取出当前所有行业分类/</summary>/<returns></returns>public DataTable SelectAl1)l "t aory"dt =sqlhelper.ExecuteQuery(sql,CommandType.Text); return dt;/<summary>/ 增加分类/</summary>/<param name="caName">招聘类别名称</param> /<returns></returns>public bool Insert(string caName)bool flag = false;string sql 二 "insert category(name)values(caName)"SqlParameter paras = new SqlParameternew SqlParameter( “caName”,caName);二int ressqlhelper.ExecuteNonQuery(sql,paras, CommandType.Text);if (res>0)flag = true;eturn flag;/<summary>/ 删除分类(连同其下招聘信息及询问一起删除) /</summary>/<param name="id"></param>/<returns></returns>public bool Delete(string id) bool flag =false;string sql= "delete from category where id =id" SqlParameterparas = new SqlParameternew SqlParameter("id",id);int res = sqlhelper.ExecuteNonQuery(sql, paras,CommandType.Text);if (res>0)flag =true;return flag/<summary>/ 修改分类/</summary>/<param name=“id”>类别ID</param>/<param name="caName">类别名称</param>/<returns></returns>public bool Update( Category ca)bool flag = false;string sql="update category set name=caName where id=id”;SqlParameterparas =ne w SqlParameter new SqlParameter("id",ca.Id),new SqlParameter("caName",ca.Name);int res = sqlhelper.ExecuteNonQuery(sql, paras,CommandType. Text) ;if (res>0)flag = true;return flag;/<summary>/ 判断该类别是否存在/</summary>/<param name="caName">类别名称</param>/<returns></returns>public bool IsExists( string caName)bool flag =false;string sql= "select*from category where name='" + caName + ”",DataTabledt=sqlhelper.ExecuteQuery(sql,CommandType.Text); if (dt.Rows.Count>0)flag = true;return flag;/*招聘信息询问类别表的操作类*王溢文*/using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using Model;namespace DALpublic class CommentDAOprivate SQLHelper sqlhelper ;public CommentDA0()sqlhelper =new SQLHelper();/<summary>/ 根据招聘信息ID取出所有针对该信息的询问记录/</summary)/<param name="newsId">招聘信息ID</param>/<returns></returns>public DataTable SelectByNewsId( string newsId)DataTable dt =new DataTable();string sql="select*from comment where newsId=newsId"SqlParameter paras = new SqlParameternew SqlParameter("newsId",newsId);dtparas, CommandType.Text);return dt;=sqlhelper.ExecuteQuery(sql,/<summary>/ 根据用户信息ID取出所有针对该用户的询问记录/</summary>/<param name="newsId"></param>/<returns></returns>public DataTable SelectByUserId( string userld)DataTable dt =new DataTable();string sql="select*from comment where userId=userId"SqlParameterparas =new SqlParameternew SqlParameter(“userId” ,userId);dtparas, CommandType.Text); return dt;二sqlhelper.ExecuteQuery(sql,/<summary>/ 增加询问记录/</summary>/<param name=”xw"></param>/<returns></returns>public bool Insert( Comment xw)bool flag = false;string sql 二 "insert intocomment(content,createTime,userId,newsId)values(content,createTime,userId,newsId)"SqlParameterparas = new SqlParameter new SqlParameter(“content”,xw.Content),new SqlParameter("createTime",xw.CreateTime), new SqlParameter("userId",xw.UserId),new SqlParameter("newsId",xw.NewsId),;intres二sqlhelper.ExecuteNonQuery(sql,paras, CommandType.Text);if (res>0)flag = true;return flag ;/<summary>/ 删除询问记录/</summary>/<param name="id"></param>/<returns></returns>public bool Delete(string id)bool flag =false;string sql= "delete from comment where id =id"SqlParameterparas =new SqlParameternew SqlParameter("id",id);intres二sqlhelper.ExecuteNonQuery(sql,paras, CommandType.Text);if (res>0)flag = true;return flag;/*注册公司管理表的操作类*王溢文*/using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using Model;namespace DAL/<summary>/ 登陆公司管理表的操作类/</summary>public class CompanyManageDAOprivate SQLHelper sqlhelper = null;public CompanyManageDA0()sqlhelper =new SQLHelper();/<summary>/ 增加公司/</summary>/<param name="gs"></param>/<returns></returns>public bool Insert( CompanyManage gs )bool flag = false;sqlinto"insert=stringcompanyManage(name,address,content,phone)values(gsName,gsAddress,gsContent,gsPhone)"SqlParameterparas =new SqlParameternew SqlParameter("gsid",gs.Id),new SqlParameter("gsName",gs.Name),new SqlParameter("gsAddress",gs.Address) , new SqlParameter("gsContent",gs.Content), new SqlParameter("gsPhone",gs.Phone);intres二sqlhelper.ExecuteNonQuery(sql,paras, CommandType.Text); if (res>0)flag =true;return flag ;/<summary>/ 删除公司(连同该公司所有的招聘信息及招聘信息的询问一起删除)/</summary>/<param name="id"></param>/<returns></returns>public bool Delete(string id)bool flag =false;string sql="delete from companyManage where id =gsid"SqlParameterparas = new SqlParameternew SqlParameter("gsid",id);int res 二 sqlhelper.ExecuteNonQuery(sql,paras, CommandType.Text) ;if (res>0)flag =true;return flag;/<summary>/修改公司/</summary>/<param name="gs"></param>/<returns></returns>public bool Update( CompanyManage gs)bool flag =false;string ssql = "update companyManage set name=gsName,address=gsAddress,content=gsContent,phone=gsPhone where id =gsid"SqlParameterparas = new SqlParameter new SqlParameter("gsid",gs.Id),;intnew SqlParameter(“gsName”,gs.Name),new SqlParameter("gsAddress",gs.Address), new SqlParameter("gsContent",gs.Content), new SqlParameter("gsPhone",gs.Phone)res 二 sqlhelper.ExecuteNonQuery(sql,paras, CommandType.Text) ;if (res>0) flag =true;return flag ;/*招聘信息管理表的操作类*王溢文/个using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using Model;namespace DALpublic class ManageDAOprivate SQLHelper sqlhelper =null;public ManageDA0()sqlhelper = new SQLHelper();/<summary>/ 取出最新10条招聘信息(所属分类,所属职位,所属公司,发布时间)/</summary>/<returns></returns>public DataTable SelectNewNews()returnsqlhelper.ExecuteQuery( "procNewsSelectNewNews" ,CommandType.StoredProcedure);/<summary>/ 根据行业类别ID取出该行业下所有的招聘信息/</summary>/<param name="caid">类别ID</param>/<returns></returns>public DataTable SelectByCaId(string caid)DataTable dt =new DataTable();string procName = "manage_selectByCaId" SqlParameterparas = new SqlParameter new SqlParameter("caid",caid);dt 二 sqlhelper.ExecuteQuery(procName,paras,CommandType.StoredProcedure)return dt;/<summary>/ 根据招聘信息ID取出该条信息下的招聘主题内容 /</summary>/<param name="id"></param>/<returns></returns>public ManageSekectById(string id)Manage n =new Manage();DataTable dt = new DataTable() ;string cmdText ="manage_selectById"SqlParameterparas = new SqlParameter new SqlParameter("id",id );paras,dt 二 s;qlhelper.ExecuteQuery(cmdText,CommandType. StoredProcedure);n.Id =id;n.NameId=dt.Rows0"nameId".ToString(); n.Title =dt.Rows0"title" .ToString();n.Content =dt.Rows0"content".ToString();n.CreateTime =dt.Rows0"createTime".ToString(); n.CaId=dt.Rows0"caId".ToString();return n;/<summary>