实训5数据库连接Word格式文档下载.docx
《实训5数据库连接Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实训5数据库连接Word格式文档下载.docx(13页珍藏版)》请在冰点文库上搜索。
代码如下所示。
代码清单5-1:
Login.asp
……
<
scriptlanguage="
JavaScript"
type="
text/javascript"
>
!
--
functioncheckSpace(checkStr){//判断checkStr是否为空格或空
varstr='
'
;
for(i=0;
i<
checkStr.length;
i++){//使str为checkStr.length个空格
str=str+'
'
//添加空格
}
return(str==checkStr);
//如果checkStr为空格或空,返回true
functioncheck(){
if(checkSpace(document.userNameInfo.userName.value)){//如果表单中的名字为空格或空
document.userNameInfo.userName.focus();
alert("
用户名不能为空或空格!
"
);
returnfalse;
if(checkSpace(document.userNameInfo.userPwd.value)){//如果表单中的密码为空格或空
document.userNameInfo.userPwd.focus();
alert("
密码不能为空或空格"
returnfalse;
retuenture;
//-->
/script>
/head>
formname="
userNameInfo"
method="
post"
action="
checkUser.asp"
……
inputtype="
submit"
name="
Submit"
value="
登录"
onclick="
returncheck();
/>
/form>
当用户单击“登录”按钮时,调用check函数,如果check函数返回true,提交数据并刷新页面;
否则不提交数据也不刷新页面。
check函数返回true时,将提交表单数据到CheckUser.asp,并进行数据库访问,验证用户是否存在。
在Web应用程序中,数据库访问通常只能由服务器程序来完成,无论采用哪种编程语言,在以数据库驱动的程序设计中,数据库访问程序都有一个比较固定的结构。
连接数据库是数据库访问程序的第一个步骤。
打开SQLServer2000数据库的语句为:
str=“Provider=SQLOLEDB;
Server=local;
UID=username;
PWD=password;
Database=dbName”
conn.Openstr
因为所有的页面操作都要连接数据库,因此,为了方便修改与维护,提高代码的重用,将其编写为一个公用函数OpenDatabase(返回其创建的数据库连接),保存在Conn.asp中。
以后要连接数据库,只需在页面引用即可,引用格式如下:
--#includefile="
conn.asp"
-->
Conn.asp的代码如下所示。
代码清单5-2:
Conn.asp
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
%
functionOpenDatabase()
dimconn,connStr
setconn=Server.CreateObject("
ADODB.Connection"
)
connStr="
Provider=SQLOLEDB;
Server=(local);
Database=ElectiveSystem;
UID=hycollege;
PWD=888888;
conn.OpenconnStr
setOpenDatabase=conn//函数指向数据库连接
endfunction
%>
一旦与数据库建立了连接,下一步就是向数据库发送特定的SQL语句以完成某个特定的操作。
本实训登录程序中的SQL语句是动态生成的,涉及对表userInfo的查询操作,其参数来自表单中的用户名和密码。
接收用户在表单中提交的数据用Request对象完成,如:
admin=trim(request("
userName"
))//获得用户名
password=trim(request("
userPwd"
))//获得密码
其中trim函数的作用是去掉字符串前后的空格。
构造的SQL语句如下:
strSql="
select*fromuserInfowhereuserName='
&
admin&
"
anduserPassword='
password&
登录程序中,由于要执行查询操作(查询userInfo表是否存在用户),所以,首先要创建记录对象rs,再用rs的Open方法创建记录集,其格式如下:
setrs=Server.CreateObject("
adodb.recordset"
rs.OpenstrSql,cn,1,1
然后判断rs是否为空,如果不为空,表示用户存在,将用户名与用户权限分别存入session变量中,以便用户在进入主页后,根据不同的权限使用不同的功能。
关于session的作用,请参看教材《web开发技术——ASP》。
最后,关闭记录集和数据库连接对象,其格式如下:
rs.close;
setrs=nothing//关闭记录集
cn.close;
setcn=nothing//关闭数据库连接
代码清单5-3:
Checkuser.asp
setcn=OpenDatabase()//获得数据库连接对象
)//创建记录集对象
rs.OpenstrSql,cn,1,1//打开记录集对象
ifnot(rs.bofandrs.eof)then//如果记录集对象不为空(用户存在)
response.redirect"
Index.asp"
//进入主页面
else//如果用户不存在,提示错误信息,并返回登录界面
response.write"
scriptlanguage='
JavaScript'
type='
text/javascript'
alert('
对不起,用户不存在!
history.go(-1);
endif
注意:
在连接数据库并访问数据库中的表之前,必须创建登录账号、数据库用户和为数据库用户授予权限。
3、主界面功能设计与实现
主界面主要由文件:
Index.asp、MainMenu.htm和Temp.htm构成。
主要设计思想采用了框架技术,把整个页面分成左右两个部分,左框架left中的静态页面MainMenu.htm主要用于显示选课系统的功能菜单,分别连接到4个子系统。
而右框架right中的静态页面Welcome.htm用于启动程序时显示一个欢迎界面。
主界面设计如图5-3所示。
图5-3:
系统主界面
(2)代码实现
具体的代码实现请查看教师提供的源代码。
4、学生信息维护界面的功能设计与实现
基本信息维护模块主要包括学生信息维护、课程信息维护]系部信息维护功能。
在本实训中,我们仅讲解学生信息维护功能,它集数据录入、查询、删除、修改、分页显示于一体。
其他功能由学生补充完成。
学生基本信息维护主要由文件:
StudentInfo.asp、EditStudent.asp、SaveStudent.asp构成,StudentInfo.asp负责接收用户输入的数据、查询及数据显示;
EditStudent.asp负责学生信息的修改;
SaveStudent.asp负责学生信息的保存、更新、删除。
(1)初始界面设计
在以数据库为中心的程序设计中,界面设计主要考虑需要把哪些信息送入数据库的一个或多个表中,或从数据库的一个或多个表中取出信息。
在本实训中的学生信息维护界面如图5-4所示。
图5-4:
学生信息维护界面
(2)填充系部信息下拉框。
系部信息通过下拉框的方式选择,当学生维护页面显示时,系部下拉框就已经填充好各个系部的名称以供用户选择。
在<
html>
前增加填充系部信息下拉框的代码并修改系部信息下拉菜单代码,源代码如下。
代码清单5-4:
填充系部下拉框信息
--#includefile="
Conn.asp"
%
dimconn,rs,strSql
ADODB.Recordset"
select*fromdeptInfo"
setconn=OpenDatabase
setrs=conn.Execute(strSql)
selectid="
selectDept"
size="
1"
<
%dowhilenotrs.eof%>
optionvalue=<
%=rs("
deptNo"
)%>
deptName"
/option>
rs.MoveNext
loop
rs.Close
setrs=nothing
/select>
(3)添加新增记录代码
前添加如下代码。
代码清单5-5:
添加学生信息代码
ifrequest.form("
txtStuNo"
)<
then
sNo=request.form("
sName=request.form("
txtStuName"
sSex=request.form("
selectSex"
sBirthday=request.form("
txtBirthday"
sDeptNo=request.form("
insertintostudentInfo(stuNo,stuName,sex,birthday,deptNo)"
values('
sNO&
'
sName&
sSex&
sBirthday&
sDeptNo&
)"
onerrorresumenext
conn.Execute(strSql)
iferr.number<
0then
response.write"
记录添加不成功!
else
response.write"
记录添加成功!
endif
这样,最基本的程序功能增加记录已完成,该程序以能运行,但还不能满足要求。
现在学生需要加以改进为其逐步增加所需的功能。
5、显示、删除学生信息
用户每增加一条新记录之后都能在页面的下方立刻看到,同时能对该记录进行删除操作。
设计如图5-5所示界面。
图5-5:
学生信息显示与删除界面
代码清单5-6:
在表格中显示记录
trbgcolor="
#E8F1FF"
td>
divalign="
center"
%response.writetrim(rs("
stuNo"
))%>
/div>
/td>
stuName"
sex"
inputname="
selectStuNo"
checkbox"
id="
/tr>
rs.movenext
loop
rs.close
setrs=nothing
为删除按钮delete中的onclick事件增加代码。
代码清单5-7:
onclick函数
functiontest(){
if(!
confirm('
确定删除吗?
))
delete"
删除"
returntest();
然后在<
前添加删除记录代码。
代码清单5-8:
删除记录
ifrequest("
).count<
0then//如果选择的复选框不为0
fori=1torequest("
).count//依次删除记录
conn.Execute"
deletefromstudentInfowherestuNo='
request("
)(i)&
next
四、实训任务和步骤
总体任务:
继续完善学生信息维护中的其他功能。
其中界面代码由教师提供,数据库访问代码由学生自己添加完成。
五、作业
模拟QQ登录界面,依据实训中的登录界面设计与实现创建一个QQ登录界面。