4 系统功能模块 4.1 用户登录模块 用户登录模块主要是检查用户名和密码是否匹配,并且可以通过“注册”按钮进入注册页面。如果用户的用户名和密码匹配则进入系统;不匹配则转入登录错误页面。在登录错误页面用户可以选择进入登录页面和注册页面。 内容来自论文无忧网 www.paper51.com 系统对用户的登录方式采用的是用户名/密码方式,在用户进入系统的时候要求用户输入用户名和密码,并比较两者和数据库中用户名和密码对应。代码如下: 内容来自论文无忧网 www.paper51.com Dim conn As NewSystem.Data.sqlclient.SqlConnection 内容来自论文无忧网 www.paper51.com Dimcmd As New System.Data.sqlclient.SqlCommand copyright paper51.com Dimobjreader As System.Data.sqlclient.SqlDataReader http://www.paper51.com conn.ConnectionString = ("SERVER=(local);USERID=sa;PWD=;DATABASE=atai") copyright paper51.com conn.Open() 内容来自论文无忧网 www.paper51.com cmd.Connection = conn 内容来自论文无忧网 www.paper51.com
cmd.CommandText = "select * from userlist where username='" +Textusername.Text + " 'and pwd='" + pwd + "'" paper51.com objreader = cmd.ExecuteReader 内容来自论文无忧网 www.paper51.com If objreader.HasRowsThen http://www.paper51.com
Response.Redirect("index.html") 内容来自论文无忧网 www.paper51.com Else paper51.com Response.Redirect("false.htm") copyright paper51.com End If 内容来自论文无忧网 www.paper51.com 但是,使用明文对用户密码进行存储时,很容易被非法使用者识别。因此,先对密码进行哈希后再写入数据库中,让非法使用者不能识别,用户密码相对更为安全,代码入下: http://www.paper51.com Public SharedFunction MD5(ByVal Sourcein As String) As String paper51.com
Dim MD5CSP AsSystem.Security.Cryptography.MD5CryptoServiceProvider = NewSystem.Security.Cryptography.MD5CryptoServiceProvider http://www.paper51.com DimMD5Source() As Byte = System.Text.Encoding.UTF8.GetBytes(Sourcein) 内容来自www.paper51.com DimMD5Out() As Byte = MD5CSP.ComputeHash(MD5Source) http://www.paper51.com Return Convert.ToBase64String(MD5Out) copyright paper51.com End Function copyright paper51.com 实现截图: paper51.com 图2 用户登录 内容来自论文无忧网 www.paper51.com 4.2 用户注册模块 内容来自www.paper51.com 用户在注册模块主要是为新用户提供注册,新用户在次填写详细信息进行注册,在注册的时候自动把权限设为普通用户。 内容来自www.paper51.com
在用户注册的时候首先判断用户名是否存在,代码如下: 内容来自www.paper51.com cmd.CommandText = "select * from userlist where username='" +Textusername.Text + "'" 内容来自论文无忧网 www.paper51.com
objreader = cmd.ExecuteReader copyright paper51.com
If objreader.HasRows Then copyright paper51.com '存在 paper51.com args.IsValid= False 内容来自www.paper51.com Session("username") = Textusername.Text http://www.paper51.com
Else 内容来自论文无忧网 www.paper51.com '不存在 copyright paper51.com
args.IsValid = True 内容来自论文无忧网 www.paper51.com End If 内容来自www.paper51.com conn.Close() 内容来自论文无忧网 www.paper51.com 在用户注册时,为了防止用户粗心,在输入密码时不小心输入错误,因此在用户输入密码后还需要用户再一次输入,通过判断两次输入是否相同来判断用户是否输入错误,相关代码如下: paper51.com If Textuserpwd.Text = Textuserpassword.Text Then 内容来自论文无忧网 www.paper51.com '匹配 http://www.paper51.com args.IsValid = True 内容来自www.paper51.com Else http://www.paper51.com '不匹配 内容来自论文无忧网 www.paper51.com args.IsValid = False 内容来自www.paper51.com End If http://www.paper51.com
当所有的条件都满足后才会向数据库中写入注册信息,写入数据库的代码如下: paper51.com
Dim conn As New System.Data.sqlclient.SqlConnection 内容来自www.paper51.com Dim cmd As New System.Data.sqlclient.SqlCommand paper51.com Dim objreader As System.Data.sqlclient.SqlDataReader copyright paper51.com
conn.ConnectionString = ("SERVER=(local);USERID=sa;PWD=;DATABASE=atai") http://www.paper51.com
conn.Open() 内容来自论文无忧网 www.paper51.com
cmd.Connection = conn http://www.paper51.com
If Textusername.Text = Session("username") Then copyright paper51.com Else 内容来自www.paper51.com If Textuserpwd.Text = Textuserpassword.Text Then 内容来自论文无忧网 www.paper51.com Dim pwd As String = MD5(Textuserpwd.Text) copyright paper51.com
cmd.CommandText = "insert into userlist values('" +Textusername.Text + "','" + pwd + "','" +sexchoose.SelectedValue + "','" + position.SelectedValue +"','" + Texttelephone.Text + "',' 0 ')" http://www.paper51.com cmd.ExecuteNonQuery() copyright paper51.com Response.Redirect("useraddsuccess.htm") 内容来自论文无忧网 www.paper51.com End If paper51.com End If paper51.com conn.Close() paper51.com 实现截图: 内容来自www.paper51.com 内容来自论文无忧网 www.paper51.com 图3 用户注册 内容来自www.paper51.com
4.3 设备一览模块 paper51.com 设备一览模块主要是查看目前所拥有的设备。该模块通过DataList控件来处理从数据源读取的数据。DataList控件的分页显示则是通过先根据当前页号Session(“CurrPage”)、分页大小PageSize来计算要显示的记录号范围,然后将数据集中需显示的记录存放到一个临时表tempbook中,再将该临时表绑定到DataList控件实现的,这样就可以显示指定页号的各记录。另外,为了在页面间传递页号值,使用了Session变量CurrPage,当用户单击“上一页”时,将Session(“CurrPage”)减1;当用户单击“下一页”时,将Session(“Currpage”)加1。在nabledwhatbutton()中编写Session(“CurrPage”)的初值和结束处理。 paper51.com 在设备一览页面,可以通过单击“添加设备”来增加新的设备。 copyright paper51.com 在DataList控件中绑定列中,“设备名称”采用超级连接,用户单击可以查看设备的详细信息,通过单击“修改”进入修改设备详细,在修改设备状态时,如果设备状态是维修则转入维修设备添加页面,如果是报废,则进入添加报废设备页面,在添加的同时更改设备一览中该设备的状态为相应状态;单击“删除”删除该设备的所有的信息。 paper51.com
DataList控件的分页显示是通过先根据当前页号Session(“CurrPage”)、分页大小PageSize来计算要显示的记录号范围,当前页号Session(“CurrPage”)的代码如下: http://www.paper51.com Subenabledwhatbutton() 内容来自论文无忧网 www.paper51.com IfSession("currpage") = 1 Then http://www.paper51.com firstpage.Enabled = False 内容来自www.paper51.com prevpage.Enabled = False 内容来自论文无忧网 www.paper51.com Else paper51.com firstpage.Enabled = True 内容来自www.paper51.com prevpage.Enabled = True copyright paper51.com
EndIf paper51.com
IfSession("currpage") = Session("totalpage") Then 内容来自论文无忧网 www.paper51.com
nextpage.Enabled = False http://www.paper51.com
lastpage.Enabled = False copyright paper51.com Else 内容来自论文无忧网 www.paper51.com nextpage.Enabled = True http://www.paper51.com lastpage.Enabled = True 内容来自www.paper51.com EndIf http://www.paper51.com End Sub 内容来自www.paper51.com
而分页大小PageSzie的计算代码如下: paper51.com Dim totalrec AsInteger = equipmentlist.Rows.Count paper51.com '计算总页数 内容来自论文无忧网 www.paper51.com Dimtotalpage As Integer http://www.paper51.com Iftotalrec < pagesize Then paper51.com totalpage = 1 内容来自www.paper51.com Else 内容来自论文无忧网 www.paper51.com If totalrec Mod pagesize <> 0 Then 内容来自论文无忧网 www.paper51.com totalpage = totalrec \ pagesize + 1 paper51.com Else paper51.com totalpage = totalrec / pagesize paper51.com
End If copyright paper51.com EndIf copyright paper51.com Session("totalpage") = totalpage http://www.paper51.com 有了当前页号Session(“CurrPage”)和分页大小PageSize就可以计算出显示的记录号范围,然后将数据集中需显示的记录存放到一个临时表tempbook中,再将该临时表棒定到DataList控件来实现,这样就可以显示指定页号的个记录,相关代码如下: copyright paper51.com Dim tempequipmentlistAs DataTable = equipmentlist.Clone() paper51.com
Dimi, j As Integer paper51.com Fori = (pageno - 1) * pagesize To pageno * pagesize - 1 copyright paper51.com If i < 0 Or i > equipmentlist.Rows.Count - 1 Then Exit For 内容来自www.paper51.com Dim row As DataRow = tempequipmentlist.NewRow http://www.paper51.com
For j = 0 Toequipmentlist.Columns.Count - 1 内容来自论文无忧网 www.paper51.com
row(equipmentlist.Columns(j).ColumnName) = equipmentlist.Rows(i).Item(j) 内容来自论文无忧网 www.paper51.com Next paper51.com
tempequipmentlist.Rows.Add(row) paper51.com Next copyright paper51.com DataGridshow.DataSource = tempequipmentlist copyright paper51.com DataGridshow.DataBind() paper51.com 为了在页面间传递页号值,使用了Session变量CurrPage,当用户单击“上一页”时,将Session(“CurrPage”)减1;当用户单击“下一页”时,将Session(“CurrPage”)加1。判断代码如下: 内容来自论文无忧网 www.paper51.com Sub pagechange(ByValsender As Object, ByVal e As CommandEventArgs) 内容来自www.paper51.com Select Case e.CommandArgument 内容来自论文无忧网 www.paper51.com Case"firstpage" paper51.com Session("currpage") = 1 paper51.com Case "prevpage" 内容来自论文无忧网 www.paper51.com If Session("currpage") > 1 Then copyright paper51.com Session("currpage") -= 1 copyright paper51.com Else 内容来自论文无忧网 www.paper51.com Session("currpage") = 1 copyright paper51.com
EndIf 内容来自www.paper51.com Case "nextpage" paper51.com Session("currpage") += 1 内容来自www.paper51.com Case "lastpage" paper51.com Session("currpage") = Session("totalpage") 内容来自www.paper51.com
EndSelect paper51.com
enabledwhatbutton() paper51.com bindlist(Session("currpage")) 内容来自www.paper51.com End Sub paper51.com
实现截图: copyright paper51.com
http://www.paper51.com
图4 设备一览 paper51.com |