4.1.1 数据操作类的设计 数据操作类DBController.vb实现对数据访问的方法,包括执行无返回值的SQL语句、执行数据查询以及一些用户控件的数据绑定,通过对这些操作方法的封装,方便开发。需要调用时,通过传递参数,选择不同的方法,进行不同的操作。 http://www.paper51.com 在该类中,Open、Close打开关闭数据库的连接;Fill填充ds;ExecNonSql执行无返回值的数据库操作;ExecReaderSql执行查询操作;BindDBGrd对DataGrid进行数据绑定;BindListBox对ListBox中进行绑定;BindDrpDownList对DropDownList进行数据绑定;CheckUserberInfo判断用户用户名、密码是否正确;GetRowsNum获取SQL查询记录条数。 内容来自论文无忧网 www.paper51.com
4.1.2 图书操作类的设计 http://www.paper51.com 图书操作类BookController.vb是基于DBController类的,里面封装了对图书进行预约等操作以及获取指定用户的借书权限、借书数量、待借天数的方法函数。在该类中,GetMax获取用户最大的借书量;GetBookDate获取该用户允许借阅时间;GetBookState判断当前书的状态;IsUserBooking判断用户是否预约该图书;GetCurNum获取用户当前借书数量;LendBook进行借书操作;CancelBooking取消预约书信息;ReturnBook进行还书操作;BookingBook预约图书信息;AllowBooking判断是否允许预约;IsBookManager判断是否为图书管理员;IsSysManager判断是否为系统管理员。 http://www.paper51.com 判断用户是否预约该图书的函数如下: 内容来自论文无忧网 www.paper51.com Public Function IsUserBooking (ByVal UserIDAs String, ByVal BookID As String) As Boolean 内容来自www.paper51.com Dim sqlstr As String ="select * from BookingInfo where UserID='" + UserID + "' and BookID="+ BookID 内容来自www.paper51.com If obj.GetRowsNum (sqlstr) =0 Then paper51.com Return False 内容来自www.paper51.com
Else http://www.paper51.com Return True http://www.paper51.com End If copyright paper51.com End Function 内容来自www.paper51.com 是否允许用户预约的函数如下: 内容来自www.paper51.com
Public Function AllowBooking (ByVal UserID AsString) As Boolean 内容来自论文无忧网 www.paper51.com Dimsqlstr As String = "select * from UserInfo, RoleInfo whereUserInfo.RoleID=RoleInfo.RoleID and AllowBooking=1 and UserID='" + UserID+ "'" copyright paper51.com If obj.GetRowsNum(sqlstr) = 0 Then 内容来自www.paper51.com ReturnFalse http://www.paper51.com
Else http://www.paper51.com Return True http://www.paper51.com
EndIf 内容来自论文无忧网 www.paper51.com End Function 内容来自www.paper51.com 4.2 用户身份验证模块的设计 内容来自www.paper51.com 4.2.1 功能描述 内容来自论文无忧网 www.paper51.com 通常一个模块里面有几个功能,而功能的导航可以通过用户控件来控制,将用户控件加载到页面中。用户身份验证模块和用户个人信息管理模块共用一个功能导航控件UserToolBar.ascx。用户身份验证模块实现用户合法性检查,其中在这个模块中还提供注销和修改密码的功能。注销页面LoginOut.aspx只需要将Session赋为空即可,修改密码页面为ChangePWD.aspx。 内容来自www.paper51.com
4.2.2 登录页面Login.aspx的设计 内容来自www.paper51.com 在该页面中,LoginBtn_Click()函数处理“登录”按钮的单击事件,通过调用DBController类的CheckUserberInfo方法,依据该方法的返回值判断用户登录是否成功,如果登录成功则把用户ID保存到Session中,然后跳转页面到ViewUserInfo.aspx;否则弹出登录失败提示,并重新返回到登录页面。在后面的页面中通过判断这个Session值是否为空来判断用户是否登录。其主要后台处理代码如下: 内容来自论文无忧网 www.paper51.com Private Sub LoginBtn_Click (ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles LoginBtn.Click 内容来自www.paper51.com Dimobj As DBController = New DBController http://www.paper51.com
If obj.CheckUserberInfo(txtUserID.Text, txtPass.Text) = 1 Then 内容来自论文无忧网 www.paper51.com
Session ("UserID") = txtUserID.Text.ToString copyright paper51.com Response.Redirect ("ViewUserInfo.aspx") http://www.paper51.com Else 内容来自www.paper51.com Page.ClientScript.RegisterStartupScript(Page.GetType(),"alter", "<script>alert('登陆失败!');window.history.go(-1);</script>") http://www.paper51.com EndIf paper51.com
End Sub 内容来自www.paper51.com 4.2.3 注销页面LoginOut.aspx的设计 paper51.com 在处理页面的Page_Load()函数中将Session赋为空,并将页面重定向到Login.aspx。 内容来自论文无忧网 www.paper51.com
4.2.4 修改密码页面ChangePWD.aspx的设计 http://www.paper51.com 首先判断用户输入的旧密码是否正确,如果不正确,则弹出提示信息。修改密码时更新SQL语句,通过DBController中的ExecNonSql方法实现。 http://www.paper51.com 4.3 用户个人信息模块 paper51.com 4.3.1 功能描述 copyright paper51.com 在用户个人信息管理模块里主要包括了用户信息页面和个人预约信息页面。用户信息页面包括用户的用户名、姓名、性别、E-Mail、单位、电话、当前状态、是否为图书管理员或系统管理员等信息;个人预约信息页面做成加载控件的形式,通过传递参数在ListContent.aspx页面动态加载控件。 内容来自www.paper51.com |