ar
30
NULL
新部门
newteam
char
30
NULL
原使用者
olduse
char
30
NULL
新使用者
newuse
char
30
NULL
调度时间
time
char
30
NULL
备注
notation
char
500
√
设备维修:设备维修详细信息。
表4设备维修
中文字段名
英文字段名
数据类型
长度
允许为空
设备名称
name
char
30
NULL
维修人员
mendpeople
char
30
NULL
维修工时
costtime
char
30
NULL
维修费用
money
char
30
NULL
故障原因
why
char
500
NULL
开始时间
starttime
char
30
NULL
结束时间
endtime
char
30
NULL
备注
attention
char
500
√
设备报废:记录报废的设备。
表5设备报废
中文字段名
英文字段名
数据类型
长度
允许为空
购买部门
buyteam
char
30
NULL
设备名称
name
char
30
NULL
设备种类
kind
char
30
NULL
设备型号
type
char
30
NULL
生产厂家
made
char
30
NULL
出厂日期
outtime
char
30
NULL
购买日期
buytime
char
30
NULL
购买价格
cost
char
30
NULL
报废时间
badtime
char
30
NULL
备注
notation
char
500
√
4系统功能模块
4.1用户登录模块
用户登录模块主要是检查用户名和密码是否匹配,并且可以通过"注册"按钮进入注册页面。如果用户的用户名和密码匹配则进入系统;不匹配则转入登录错误页面。在登录错误页面用户可以选择进入登录页面和注册页面。
系统对用户的登录方式采用的是用户名/密码方式,在用户进入系统的时候要求用户输入用户名和密码,并比较两者和数据库中用户名和密码对应。代码如下:
DimconnAsNewSystem.Data.sqlclient.SqlConnection
DimcmdAsNewSystem.Data.sqlclient.SqlCommand
DimobjreaderAsSystem.Data.sqlclient.SqlDataReader
conn.ConnectionString=("SERVER=(local);USERID=sa;PWD=;DATABASE=atai")
conn.Open()
cmd.Connection=conn
cmd.CommandText="select*fromuserlistwhereusername='"+Textusername.Text+"'andpwd='"+pwd+"'"
objreader=cmd.ExecuteReader
Ifobjreader.HasRowsThen
Response.Redirect("index.html")
Else
Response.Redirect("false.htm")
EndIf
但是,使用明文对用户密码进行存储时,很容易被非法使用者识别。因此,先对密码进行哈希后再写入数据库中,让非法使用者不能识别,用户密码相对更为安全,代码入下:
PublicSharedFunctionMD5(ByValSourceinAsString)AsString
DimMD5CSPAsSystem.Security.Cryptography.MD5CryptoServiceProvider=NewSystem.Security.Cryptography.MD5CryptoServiceProvider
DimMD5Source()AsByte=System.Text.Encoding.UTF8.GetBytes(Sourcein)
DimMD5Out()AsByte=MD5CSP.ComputeHash(MD5Source)
ReturnConvert.ToBase64String(MD5Out)
EndFunction
实现截图:
图2用户登录
4.2用户注册模块
用户在注册模块主要是为新用户提供注册,新用户在次填写详细信息进行注册,在注册的时候自动把权限设为普通用户。
在用户注册的时候首先判断用户名是否存在,代码如下:
cmd.CommandText="select*fromuserlistwhereusername='"+Textusername.Text+"'"
objreader=cmd.ExecuteReader
Ifobjreader.HasRowsThen
'存在
args.IsValid=False
Session("username")=Textusername.Text
Else
'不存在
args.IsValid=True
EndIf
conn.Close()
在用户注册时,为了防止用户粗心,在输入密码时不小心输入错误,因此在用户输入密码后还需要用户再一次输入,通过判断两次输入是否相同来判断用户是否输入错误,相关代码如下:
IfTextuserpwd.Text=Textuserpassword.TextThen
'匹配
args.IsValid=True
Else
'不匹配
args.IsValid=False
EndIf
当所有的条件都满足后才会向数据库中写入注册信息,写入数据库的代码如下:
DimconnAsNewSystem.Data.sqlclient.SqlConnection
DimcmdAsNewSystem.Data.sqlclient.SqlCommand
DimobjreaderAsSystem.Data.sqlclient.SqlDataReader
conn.ConnectionString=("SERVER=(local);USERID=sa;PWD=;DATABASE=atai")
conn.Open()
cmd.Connection=conn
IfTextusername.Text=Session("username")Then
Else
IfTextuserpwd.Text=Textuserpassword.TextThen
DimpwdAsString=MD5(Textuserpwd.Text)
cmd.CommandText="insertintouserlistvalues('"+Textusername.Text+"','"+pwd+"','"+sexchoose.SelectedValue+"','"+position.SelectedValue+"','"+Texttelephone.Text+"','0')"
cmd.ExecuteNonQuery()
Response.Redirect("useraddsuccess.htm")
EndIf
EndIf
conn.Close()
实现截图:
图3用户注册
4.3设备一览模块
设备一览模块主要是查看目前所拥有的设备。该模块通过DataList控件来处理从数据源读取的数据。DataList控件的分页显示则是通过先根据当前页号Session("CurrPage")、分页大小PageSize来计算要显示的记录号范围,然后将数据集中需显示的记录存放到一个临时表tempbook中,再将该临时表绑定到DataList控件实现的,这样就可以显示指定页号的各记录。另外,为了在页面间传递页号值,使用了Session变量CurrPage,当用户单击"上一页"时,将Session("CurrPage")减1;当用户单击"下一页"时,将Session("Currpage")加1。在nabledwhatbutton()中编写Session("CurrPage")的初值和结束处理。
在设备一览页面,可以通过单击"添加设备"来增加新的设备。
在DataList控件中绑定列中,"设备名称"采用超级连接,用户单击可以查看设备的详细信息,通过单击"修改"进入修改设备详细,在修改设备状态时,如果设备状态是维修则转入维修设备添加页面,如果是报废,则进入添加报废设备页面,在添加的同时更改设备一览中该设备的状态为相应状态;单击"删除"删除该设备的所有的信息。
DataList控件的分页显示是通过先根据当前页号Session("CurrPage")、分页大小PageSize来计算要显示的记录号范围,当前页号Session("CurrPage")的代码如下:
Subenabledwhatbutton()
IfSession("currpage")=1Then
firstpage.Enabled=False
prevpage.Enabled=False
Else
firstpage.Enabled=True
prevpage.Enabled=True
EndIf
IfSession("currpage")=Session("totalpage")Then
nextpage.Enabled=False
lastpage.Enabled=False
Else
nextpage.Enabled=True
lastpage.Enabled=True
EndIf
EndSub
而分页大小PageSzie的计算代码如下:
DimtotalrecAsInteger=equipmentlist.Rows.Count
'计算总页数
DimtotalpageAsInteger
Iftotalrec
totalpage=1
Else
IftotalrecModpagesize<>0Then
totalpage=totalrec\pagesize+1
Else
totalpage=totalrec/pagesize
EndIf
EndIf
Session("totalpage")=totalpage
有了当前页号Session("CurrPage")和分页大小PageSize就可以计算出显示的记录号范围,然后将数据集中需显示的记录存放到一个临时表tempbook中,再将该临时表棒定到DataList控件来实现,这样就可以显示指定页号的个记录,相关代码如下:
DimtempequipmentlistAsDataTable=equipmentlist.Clone()
Dimi,jAsInteger
Fori=(pageno-1)*pagesizeTopageno*pagesize-1
Ifi<0Ori>equipmentlist.Rows.Count-1ThenExitFor
DimrowAsDataRow=tempequipmen
上一篇:
ASP012同学录系统2(论文和程序)
下一篇:
让我掉下眼泪的