人力资源学生晚归与考勤管理信息系统开发文档资料Word文档格式.docx
- 文档编号:8443604
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:59
- 大小:1.22MB
人力资源学生晚归与考勤管理信息系统开发文档资料Word文档格式.docx
《人力资源学生晚归与考勤管理信息系统开发文档资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《人力资源学生晚归与考勤管理信息系统开发文档资料Word文档格式.docx(59页珍藏版)》请在冰点文库上搜索。
各个数据表的关系(主要是主键与外键的约束关系)如下图所示:
数据库创建脚本参考文件:
“学生晚归与考勤管理信息系统数据库建库脚步.sql”
3.4数据库连接
1、建议将数据库拷入网站内的App_Data目录内,然后将数据库连接字符串写入到Web.config,参考代码如下:
<
appSettings>
<
addkey="
ConnectionStr"
value="
Server=.;
AttachDbFilename=|DataDirectory|Attendance.mdf;
IntegratedSecurity=True"
/>
/appSettings>
测试数据库连接是否正常
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassDBConnTest:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
stringconstr=ConfigurationManager.AppSettings["
];
SqlConnectionconn=newSqlConnection(constr);
conn.Open();
//打开数据库连接
Response.Write("
数据库连接成功!
"
);
conn.Close();
//关闭数据库连接
数据库关闭成功!
}
}
经验证,Attendance.mdf数据库连接正常
2、将常用数据库操作代码写入公共类DB中,其中包含以下各自定义方法,参考代码如下:
///<
summary>
///DB类为一个专门进行数据库操作的类
///包括连接数据库,更新数据库,查询数据库这些操作
/summary>
publicclassDB
///<
///DB()为DB类的构造方法
publicDB()
///定义返回数据库连接对象SqlConnection方法
returns>
///SqlConnection对象
/returns>
publicSqlConnectiongetCon(){
StringstrCon=ConfigurationManager.AppSettings["
//从配置文件web.cofig里面读取数据库的连接字符串
returnnewSqlConnection(strCon);
//返回数据库连接对象
///定义更新数据库的方法
paramname="
cmdStr"
>
///参数cmdStr为要执行更新数据库的SQL语句,包含增加,修改,删除这三种SQL语句
/param>
///数据库更新成功则返回1,更新失败则返回0
publicintsqlEx(stringcmdStr){
SqlConnectioncon=getCon();
con.Open();
SqlCommandcmd=newSqlCommand(cmdStr,con);
//创建执行SQL语句的命令对象SqlCommand
try
cmd.ExecuteNonQuery();
return1;
//成功返回1
catch
return0;
//失败返回0
finally
con.Dispose();
//释放资源
///定义查询数据库信息的方法
///参数cmdStr为执行查询时的书写的SQL语句
publicDataTablereDt(stringcmdStr){
//连接数据库
SqlDataAdapterda=newSqlDataAdapter(cmdStr,con);
//创建数据适配器对象
DataSetds=newDataSet();
//创建数据集对象
da.Fill(ds);
//将保存在数据适配器对象中的数据填充到数据集对象中
return(ds.Tables[0]);
//返回数据集对象中有记录的那个表
///定义阅读数据的方法
str"
///参数str为执行查询操作时的SQL语句
///返回一个数据阅读对象
publicSqlDataReaderreDr(stringstr){
SqlCommandcmd=newSqlCommand(str,con);
SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
//通过调用Command对象的ExecuteReader()方法创建DataReader对象,CommandBehavior.CloseConnection表示?
returndr;
功能模块的实现
用户注册功能的实现:
实现逻辑:
用户注册信息写入到admin表,此注册功能是专门针对本校的学生开发注册的,如果不是本校的学生,是没有注册的权限的,所有注册时要根据学生输入的真实姓名和学号进行注册,如果找不到对应的学生的名字,就不允许用户进行注册,如果用户已经注册过一次了,就直接告诉用户已经注册过了,无需再次注册了,并自动为用户跳转到登录页面,如果用户是第一次注册,就把用户的注册信息写入到admin表中,注册成功后也跳转到登录页面让用户进行登录。
用户注册页面Register.aspx如下图所示:
学生进入此页面进行注册,正确填写了学生姓名和学生学号以及验证码了以后,点击提交按钮完成帐户注册,而在后台,要进行数据的合法性判断,首先进行的是验证码的正确性判断,把用户输入的验证码和保存的Session对象中的验证码取出来作比较,如果验证码输入正确才继续执行检查该注册用户是否是本校的学生,以及该用户是否已经被注册了,后台的处理代码如下所示:
Register.aspx.cs
publicpartialclassstudent_Register:
DBdb=newDB();
this.ImageButton1.ImageUrl="
image.aspx"
;
//image.aspx是一个显示验证码的Web页面
protectedvoidbtn_submit_Click(objectsender,EventArgse)
stringcode=txtCheckCode.Text.Trim();
if(code!
=(string)Session["
image"
])
Script>
alert('
验证码输入错误,请检查后重新输入!
'
)<
/Script>
//Response.Redirect("
Register.aspx"
如果使用这种跳转方式,那么上面的javascript是无法运行的,因为还没有来得及运行就页面就已经跳转了
script>
window.location.href='
Register.aspx'
/script>
else{
stringstu_Name=txtUserName.Text.Trim();
stringstu_Id=txtstuID.Text.Trim();
stringsql2="
selectstu_namefromstuInfowherestu_name='
+stu_Name+"
//使用这条SQL语句检查要注册的人是否是本校的学生,如果是,才允许其注册,如果不是,就不允许其注册
SqlDataReaderdr=db.reDr(sql2);
if(dr.Read())
dr.Close();
//关闭SqlDataReader
stringsq="
select*fromadminwherelogin_name='
+stu_Name+"
//如果已经证实是本校的学生,就再判断该学生是否已经注册过了
dr=db.reDr(sq);
//再次使用SqlDataReader
你已经注册过了,不需要再次注册了!
直接为您跳转到登录页面进行登录'
logion.aspx'
intpower=3;
//如果已经证实要注册的人是本校的学生,就直接给该学生赋予使用权限
stringsql="
insertintoadmin(login_name,login_pwd,admin_power)values('
'
+stu_Id+"
"
+power+"
)"
//Response.Write(sql);
//Response.End();
intflag=db.sqlEx(sql);
if(flag>
0)
注册成功了!
马上为您跳转到登录页面进行登录'
login.aspx'
注册失败!
catch(System.Exceptionee){
+ee.Message.ToString()+"
你不是本校的学生,没有注册的权限!
txtUserName.Text="
txtstuID.Text="
protectedvoidbtn_reset_Click(objectsender,EventArgse)
用户登录功能的实现
实现逻辑:
用户进入登录页面后,输入相关的用户名和密码进行登录,如果用户名和密码都正确了,表示该用户是合法用户,就允许其进入系统的主页进行相关的系统操作,如果用户名和密码的验证不通过,就不允许其进入系统,用户输入用户名和密码后,在后台的处理过程中首先会从数据库Attendance.mdf的admin表取出相应的用户名和用户输入的用户名进行匹配,如果用户名匹配成功了,就把数据表中存储的密码和用户输入的密码进行比对,如果密码也验证通过了,才允许用户进入系统首页,用户名和密码中任意一项匹配如果不通过,都不允许其登录。
登录该系统时,有三种不同身份的使用者,分别为管理员,记录员和学生,不同的身份就对应着不同的使用权限。
使用权限的限制根据不同身份的登录者生成不同的动态导航,以此到达限定使用者的权限的目的。
登录页面的设计如下:
如果登录的身份是管理员,则显示如下的导航:
如果登录的身份是记录员,则显示如下的导航:
如果登录的身份是学生,则显示如下的导航:
对于管理员而言,其拥有的使用权限是最多的,但没有晚归登记和考勤登记的权限,登记权限只有记录员才有,而对于学生而言,只有查看相关记录的权限,别的权限都没有,因此通过这种根据不同登录者的身份生成不同的导航就可以限定了登录者的使用权限了。
这里难就难在了如果根据登录者的身份动态生成不同的导航信息。
相关代码如下:
用户登录的后台代码:
login.aspx.cs
publicpartialclasslogin:
ImageButton1.ImageUrl="
//让页面加载时就显示验证码图片
protectedvoidbtnRegister_Click(objectsender,EventArgse)
Response.Redirect("
//点击注册按钮后,直接跳转到注册页面,这里需要注意一个小问题,由于文本框已经使用了验证控件,因此要想让按钮的触发事件不触发验证控件时,把按钮的CausesValidation属性设置为false即可
protectedvoidbtnLogin_Click(objectsender,EventArgse)
//获取输入的验证码
stringusername=txtUserName.Text.Trim();
//获取输入的用户名
stringpassword=txtPassword.Text.Trim();
//获取输入的密码
])//先进行验证码的判断,验证码输入正确后在执行其他的操作
验证码输入有误!
else
selectlogin_name,login_pwd,admin_powerfromadminwherelogin_name='
+username+"
SqlDataReaderdr=db.reDr(sql);
if((string)dr["
login_pwd"
]==password)
用户名和密码正确!
登录成功!
Index.aspx'
Session["
Power"
]=dr["
admin_power"
//使用Session存储用户的使用权限
username"
]=username;
//存储用户名
密码错误!
该用户不存在,请先去注册一个帐户后再进行登录操作,即将为你跳转到注册页面!
在用户进行登录的时候,使用Session对象存储用户名,并且根据用户名从数据库中取出该用户的使用权限,也使用Session对象保存用户的使用权限,登录成功后,在系统的主页的后台处理代码中取出保存在Session对象中的用户名的相关的用户权限,然后根据用户权限来动态生成导航,相关的代码如下:
系统主页的后台处理代码:
index.aspx.cs
publicpartialclassIndex:
if(Session["
]!
=null)//这里使用Session对象对用户是否已经进行登录进行判断,如果Session中的内容不为空,则表示用户已经登录
stringuserStr=(string)Session["
//取出保存在Session对象中的用户名
intpower=int.Parse(Session["
].ToString());
//取出保存在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人力资源 学生 考勤 管理信息系统 开发 文档 资料