1、第十六章 在线求职招聘系统 16.2 数据的设计与基本配置 16.2.1 数据的设计 本系统数据库系统采用MS-SQLServer 2000 SP4(简体中文版),设定数据库服务器名为“ZUT-GYF”,使用企业管理器新建一个数据库,命名为myjobs。根据需求分析,系统共需要7个数据表,表结构内容以及建立步骤如下: (1)myjobs_jobkinds数据表 该数据表用户保存系统工作类别,共有两个字段(ID,jobkinds),生成该数据表的SQL脚本语句如下: if exists (select * from dbo.sysobjects where id = object
2、id(N'[dbo].[myjobs_jobkinds]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[myjobs_jobkinds] GO CREATE TABLE [dbo].[myjobs_jobkinds] ( [id] [int] IDENTITY (1, 1) NOT NULL , [jobkinds] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY] GO (2)myjobs_cominfor数据
3、表 该数据表用户保存企业会员信息,包括ID,企业名称,企业信息,密码等相关信息,共有9个字段(ID,comid,pwd,comname,tel,email,cominfor,regdate,address),生成该数据表的SQL脚本语句如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[myjobs_cominfor]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[myjobs_cominfor] GO
4、CREATE TABLE [dbo].[myjobs_cominfor] ( [id] [int] IDENTITY (1, 1) NOT NULL , [comid] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [comname] [nchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [cominfor] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL , [email] [char] (20) COLLATE Chinese_PRC_
5、CI_AS NOT NULL , [tel] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [pwd] [char] (32) COLLATE Chinese_PRC_CI_AS NOT NULL , [regdate] [datetime] NOT NULL , [address] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO (3)myjobs_userinfor数据表 该数据表用于保存普通会
6、员注册信息,包括ID,用户姓名,密码等相关信息,共包含20个字段(ID,userid,username,pwd,tel,sex,email,edu,degree,wantjob等),生成该数据表的SQL语句如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[myjobs_userinfor]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[myjobs_userinfor] GO CREATE TABLE [
7、dbo].[myjobs_userinfor] ( [id] [int] IDENTITY (1, 1) NOT NULL , [userid] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [pwd] [char] (32) COLLATE Chinese_PRC_CI_AS NOT NULL , [email] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [tel] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
8、 [sex] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [edutime] [datetime] NOT NULL , [school] [char] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [brithday] [datetime] NOT NULL , [pic] [char] (40) COLLATE Chinese_PRC_CI_AS NOT NULL , [wantmoney] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NU
9、LL , [major] [char] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [express] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL , [myself] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL , [login] [int] NOT NULL , [passportkinds] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [passportNo] [char] (30) CO
10、LLATE Chinese_PRC_CI_AS NOT NULL , [username] [char] (16) COLLATE Chinese_PRC_CI_AS NOT NULL , [degree] [int] NOT NULL , [wantjob] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO (4) myjobs_newjobs数据表 该数据表用户保存企业发布的招聘职位,包括职位ID,职位名称,招聘人数,招聘公司等,共包含11个字
11、段(ID,comid ,jobname等),生成该数据表的SQL语句如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[myjobs_newjobs]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[myjobs_newjobs] GO CREATE TABLE [dbo].[myjobs_newjobs] ( [id] [int] IDENTITY (1, 1) NOT NULL , [comid]
12、 [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [jobkinds] [char] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [jobname] [char] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [peoplecount] [int] NOT NULL , [request] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL , [pubtime] [datetime] NOT NULL , [
13、endtime] [datetime] NOT NULL , [jobpay] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [degrequest] [int] NOT NULL , [jobstate] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO (5)myjobs_req_msg数据表 该数据用户存储应聘记录,包括应聘职位,应聘人ID,申请日期等,同时根据标识字段,也存储用户收藏职位信息,在必要
14、的时候发送应聘请求。共包含8个字段(ID,jobid,usreid,comid,viewstate,userstate,comstate,sendtime),生成该数据表的SQL脚本语句如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[myjobs_req_msg]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[myjobs_req_msg] GO CREATE TABLE [dbo].[myjobs_r
15、eq_msg] ( [id] [int] IDENTITY (1, 1) NOT NULL , [userid] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [comid] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [jobid] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [viewstate] [int] NOT NULL , [sendtime] [datetime] NOT NULL , [use
16、rmsgstate] [int] NOT NULL , [commsgstate] [int] NOT NULL ) ON [PRIMARY] GO (6) myjobs_myhrmsg 数据表 该数据用户保存普通会员的人事经理来信记录,一般为企业的面试邀请,包括普通会员ID,企业ID,发送日期等,共包含7个字段(ID,userid,comid等),生成改表的SQL脚本语句如下: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[myjobs_myhrmsg]') and OBJECTPR
17、OPERTY(id, N'IsUserTable') = 1) drop table [dbo].[myjobs_myhrmsg] GO CREATE TABLE [dbo].[myjobs_myhrmsg] ( [id] [int] IDENTITY (1, 1) NOT NULL , [userid] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [comid] [char] (15) COLLATE Chinese_PRC_CI_AS NOT NULL , [content] [ntext] COLLATE C
18、hinese_PRC_CI_AS NOT NULL , [msgstate] [int] NOT NULL , [sendtime] [datetime] NOT NULL , [jobname] [char] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO (7)myjobs_news数据表 该数据用于保存相关就业新闻信息,主要包括新闻的标题,内容等信息,共有6个字段, 生成该数据表的SQL脚本语句如下: if exists (select * from
19、dbo.sysobjects where id = object_id(N'[dbo].[myjobs_news]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[myjobs_news] GO CREATE TABLE [dbo].[myjobs_news] ( [id] [int] IDENTITY (1, 1) NOT NULL , [title] [nchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [writer] [char] (10) COL
20、LATE Chinese_PRC_CI_AS NULL ,
[pubtime] [datetime] NULL ,
[content] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[views] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
16.2.2 Web.config文件的配置信息
Web.config文件主要添加了数据库连接字段和系统管理员密码字段,具体如下:
21、ion>
22、
23、管理和系统的紧凑性,我们把这两个功能集成到一个页面内,并利用Panel控件进行管理。
SysManagementPage.aspx的主要HTML代码如下:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="SysManagementPage.aspx.vb" Inherits="MyJobs.WebForm1"%>
24、
SysManagementPage.aspx.vb中的逻辑代码如下: '------code begin----------- '声明命名空间的引用 Imports System.Data.SqlClient Public Class WebForm1 Inherits System.Web.UI.Page #Region " Web 窗体设计器生成的代码 " '此处省略了窗体设计器生成的代码,以节约篇幅 #End Region35、 '在这个页面中,我们演示两种方法操作数据库 '----1\使用ADO.NET中的Oledb类进行SQLServer数据的操作--------- ' Dim sConnString1 As String = "Provider=sqloledb;" & _ ' "Data Source=ZUT-GYF;Initial Catalog=myjobs;" & _ ' " User Id=sa;Password='123456'" ' Dim myoledbcon As OleDb.
36、OleDbConnection = New OleDb.OleDbConnection(sConnString1) '---------------------------------------------------------- '----2\使用ADO.NET中的SQLClinet类进行SQLServer数据的操作------------------------------------------------------ Dim sConnString2 As String = "data source=ZUT-GYF;initial catalog=my
37、jobs;user id=sa;pwd=123456" Dim mysqlcon As SqlConnection = New SqlConnection(sConnString2) '------------------------------------------------------------ Dim mysql As String Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
38、 '在此处放置初始化页的用户代码 '管理员身份验证 If Session("admin") <> "admin" Then Panel1.Visible = False Panel2.Visible = False Panel4.Visible = True Else If Not Page.IsPostBack Then getdata() End If
39、 End If End Sub '读取数据过程 Sub getdata() Dim mydt As DataSet = New DataSet mysql = "select id ,jobkinds from myjobs_jobkinds" '下面的代码演示了使用两种方式进行SQLServer数据库的操作,无论采取哪种方式 '都可以完成数据库的操作,我们屏蔽掉了第一种, '而采取了使用SQLClient类进行数据库操作 '1\使用ADO.
40、NET中的Oledb类进行SQLServer数据的操作的过程代码 'Dim mycmd As OleDb.OleDbDataAdapter ' 'mycmd = New OleDb.OleDbDataAdapter(mysql, myoledbcon) ' mycmd.Fill(mydt, "jobkinds") ' DataGrid1.DataSource = mydt.Tables("jobkinds") ' DataGrid1.DataBind() ' myole
41、dbcon.Close() '------------------------------------------ '2\使用ADO.NET中的SQLClinet类进行SQLServer数据的操作 Dim mysqlcmd As SqlDataAdapter = New SqlDataAdapter(mysql, mysqlcon) mysqlcmd.Fill(mydt, "jobkinds") DataGrid1.DataSource = mydt.Tables("jobkinds").DefaultV
42、iew DataGrid1.DataBind() mysqlcon.Close() End Sub '激活编辑功能 Private Sub DataGrid1_EditCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) DataGrid1.EditItemIndex = 1 getdata() End Sub '取消编辑
43、 Private Sub DataGrid1_CancelCommand(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) DataGrid1.EditItemIndex = -1 getdata() End Sub '添加工作类别过程 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System
44、EventArgs) Handles Button1.Click If TextBox1.Text = "" Then Exit Sub mysql = "insert into myjobs_jobkinds(jobkinds) values('" + TextBox1.Text + "')" Dim mycmd As SqlCommand = New SqlCommand(mysql, mysqlcon) mysqlcon.Open() mycmd.ExecuteNonQuery()
45、 mysqlcon.Close() Response.Write("") getdata() End Sub '翻页事件过程 Private Sub DataGrid1_PageIndexChanged(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) DataGrid1.
46、CurrentPageIndex = e.NewPageIndex getdata() End Sub '发布新闻过程那个 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox4.Text <> "" Then Dim titl
47、e As String = TextBox2.Text.Replace("'", "")
Dim writer As String = TextBox3.Text.Replace("'", "")
Dim content As String = TextBox4.Text.Replace("'", "").Replace(Chr(13), "
")
Dim pubtimes As DateTime = DateTime.Now
mysql = "insert into myjobs_n
48、ews(title,writer,pubtime,content)values('" + title + "','" + writer + "','" + pubtimes + "' ,'" + content + "')" Dim mycmd As SqlCommand = New SqlCommand(mysql, mysqlcon) mysqlcon.Open() mycmd.ExecuteNonQuery() mysqlcon.Close() Respons
49、e.Write("") End If End Sub '进入类别管理面板 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click If Session("admin") = "admin" Then Panel1.Visible = True Panel2.Visible = False getdata() End If End Sub '进入发布新闻面板 Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click If Session("admin") = "admin" Then






