首页 理论教育 ASP动态网页设计:学生信息在线管理例程

ASP动态网页设计:学生信息在线管理例程

时间:2023-11-05 理论教育 版权反馈
【摘要】:为了让读者综合了解数据库在线管理,下面以简单的“学生信息在线管理”为例,具体介绍数据库访问组件的应用。

ASP动态网页设计:学生信息在线管理例程

为了让读者综合了解数据库在线管理,下面以简单的“学生信息在线管理”为例,具体介绍数据库访问组件的应用。

1.系统的实现

组成系统的文件如下:

数据库文件——school.mdb

连接数据库文件——odbc_conn.asp

显示成员文件——index.asp

添加成员表单文件——add_form.asp

添加成员文件——add.asp

修改成员表单文件——change_form.asp

修改成员文件——change.asp

删除成员文件——delete.asp

下面依次建立各文件。

2.数据库文件school.mdb

该文件在本章前面已经建立。

3.连接数据库文件odbc_conn.asp

由于很多文件都要用到连接数据库的语句,为了方便,可以将这部分单独写成一个文件,然后在其他文件中用〈!--#Includefile=″odbc_conn.asp″--〉将其包括进来。这样做的好处是如果要修改连接数据库的语句时,只要修改这个文件就行了。程序代码如下:

〈%

Dim Conn

Set Conn=Server .CreateObject (″ADODB.Connection″)

Conn.ConnectionString=″DRIVER={Microsoft Access Driver (*.mdb)};DBQ=″&_

Server .MapPath (″school .mdb″)

Conn.Open

%〉

4.显示成员文件index.asp

该文件用分页方式显示所有成员,并添加链接到其他页面的超链接,另外,因为这个页面作为该系统的首页,一般命名为index.asp。

代码如下:

〈!--#Include file=″odbc_conn.asp″--〉

〈%CPageName=Request .servervariables (″SCRIPT_NAME″)%〉

〈HTML〉

〈HEAD〉

〈TITLE〉学生信息管理系统〈/TITLE〉

〈SCRIPT LANGUAGE=″VBScript″〉

Sub gopage ()

If Window.event .keycode=13 Then ′若按回车键

pno=document .frmPage.pageno.value ′获得文本框中输入的页号

Window.location.href=″〈%=CPageName%〉?pageno=″& pno

End If

End Sub

〈/SCRIPT〉

〈/h EAD〉

〈BODY bgcolor=″#FFFFFF″〉

〈DIV align=″center″〉〈H2〉学生信息管理系统- 首页显示信息〈/H2〉〈/DIV〉

〈%

Dim str Sql,rs

strSql=″select*from student order by id desc″

Set Rs=Server .CreateObject (″ADODB.RecordSet″)

Rs .Open strSgl ,Conn,1,3,&H0001

Dim Cpage_no ′当前页号

Rs .PageSize=5 ′设置每页显示的记录数

If Request .Querystring (″pageno″)=″″Then ′查询所要显示的页号

Cpage_no=l ′若未指定, 则显示第 1 页

Else

Cpage_no=Cint (Request .Querystring (″pageno″))′设 .所要显示的页号

End If

Rs .AbsolutePage=Cpage_no

%〉

〈DIV align=″right″〉

〈FORM Name=″frmPage″〉

第〈INPUT type=″text ″Name=″pageno″onKeyPress=″gopage ()″size=4〉页

〈/FORM〉

〈/DIV〉

〈TABLE border=l align=center width=″100%″〉

〈TR bgcolor=#E0E0E0 align=center〉

〈TD〉学号〈/TD〉〈TD〉姓名〈/TD〉〈TD〉性别〈/TD〉〈TD〉出生 日期〈/TD〉

〈TD〉专业〈/TD〉〈TD〉成绩〈/TD〉〈TD〉电话〈/TD〉〈TD〉电子邮箱〈/TD〉

〈TD〉修改〈/TD〉〈TD〉删除〈/TD〉

〈/TR〉

〈%

LineNo=l

Do While NOT Rs .EOF AND Line No〈=Rs.PageSize ′输出当前页的内容

Response .write ″〈TR〉″

For i=1 To Rs .Fields .count-1 ′id 自动编号字段不输出

fdvalue=Rs (i)

If isnull (fdvalue)Then

Response .write ″〈TD〉 〈/TD〉″

Else

If RS (i).Name=″email ″Then

If instr (Rs (i),″@″)〈〉0 Then ′若为 Email 地址

Response .write ″〈TD〉〈a href=mailto:″&trim(Rs (i))&″〉″&trim(Rs (i))&

″〈/A〉〈/TD〉″

Else

Response .write″〈TD〉″&Rs (i)&″〈/TD〉″

End If

Else

Response .write″〈TD〉″&Rs (i)&″〈/TD〉″

End If

End If

Next

Response .write″〈TD〉〈A href=′change_form.asp?v_id=″&Rs (″id″)&″′〉修改

〈/A〉〈/TD〉″

Response .write ″〈TD〉〈A href=′delete .asp?v_id=″&Rs (″id″)&″′〉删除〈/A〉〈/TD〉″

Rs .MoveNext

Response .write ″〈/TR〉″

LineNo=LineNo+1

Loop

%〉

〈/TABLE〉

〈DIV align=″center″〉

〈TABLE border=0 width=″100%″〉

〈TR〉

〈TD align=″left″〉〈A href=″add_form.asp″〉添加新学生〈/A〉〈/TD〉

〈TD align=″right″〉

第〈%=Cpage_no%〉/〈%=Rs .PageCount%〉页 共〈%=Rs .RecordCount%〉条记录

〈/TD〉

〈TD align=″right″〉

〈%

For i=1 to Rs .PageCount ′显示分页页码

If i=Cpage_no then

Response .write i&″ ″

Else

Response .write ″〈a href=′″&CPageName & ″?pageno=″&i & ″′〉″&i & ″〈/a〉 ″

End If

Next

%〉

〈/TD〉

〈/TR〉

〈/TABLE〉

〈/DIV〉

〈%

RS .close

Set rs=Nothing

Conn.close

Set Conn=Nothing

%〉

〈/BODY〉

〈/HTML〉

程序运行结果如图7-15所示。

图7-15 index.asp运行结果

5.添加成员表单文件add_form .asp

代 码 如 下 :

〈HTML〉

〈HEAD〉

〈TITLE〉添加记录表单〈/TITLE〉

〈/HEAD〉

〈BODY〉

〈H2 align=″center″〉添加新记录〈/H2〉

〈DIV align=″center″〉

〈FORM method=″POST″action=″add.asp″〉

〈TABLE border=″1″cellpadding=″0″cellspacing=″0″width=″340″〉

〈TR〉

〈TD width=″39%″align=″center″〉学   号〈/TD〉

〈TD width=″61%″align=″left ″〉

〈INPUT type=″text″name=″s_id″size=″20″〉*

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉姓   名〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″text″name=″name″size=″20″〉*

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉性   别〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″radio″value=″男″checked name=″sex″〉男

〈INPUT type=″radio″name=″sex″value=″女 ″〉女

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉出生 日期〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″text″name=″birthday″size=″20″〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉专   业〈/TD〉

〈TD width=″61%″align=″left ″〉

〈INPUT type=″text″name=″class″ size=″20″〉*

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉成   绩〈/TD〉

〈TD width=″61%″align=″left ″〉

〈INPUT type=″text″name=″grade″size=″20″〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉电   话〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″text″name=″tel″ size=″20″〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉电子邮箱〈/TD〉

〈TD width=″61%″align=″left ″〉

〈INPUT type=″text″name=″email″ size=″20″〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″left″〉

〈P align=″right″〉〈INPUT type=″submit″value=″提交″name=″B1″〉〈/P

〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″reset ″value=″全部重写″name=″B2″〉

〈/TD〉

〈/TR〉(www.xing528.com)

〈/TABLE〉

〈/FORM〉

〈/DIV〉

〈/BODY〉

〈/HTML〉

程序运行结果如图7- 16所示 。

图7-16 add_form.asp运行结果

6.添加成员文件add.asp

代码如下:

〈!--#Include file=″odbc_conn.asp″--〉

〈%

′如果上面的信息填全了,就添加记录,否则给出错误信息

If Request .Form(″s_id″)〈〉""And Request .Form(″name″)〈〉″″And Request .Form(″class″)

〈〉″″Then

Dim strSql,Rs

strSql=″select*from student″

Set Rs=Server .CreateObject (″ADODB.RecordSet ″)

Rs .Open strSgl,Conn,l,3

Rs .Addnew

Rs (″s_id″)=Request .Form(″s_id″)

Rs (″Name″)=Request .Form(″name″)

Rs (″sex″)=Request .Form(″sex″)

If Request .Form(″birthday″)〈〉″″Then

If IsDate(CDate(Request.Form(″birthday″)))Then

Rs(″birthday″)=CDate(Request.Form(″birthday″))

End If

Else

Rs(″birthday″)=NULL

End If

Rs(″class″)=Request.Form(″class″)

If Request.Form(″grade″)〈〉″″Then

Rs(″grade″)=Request.Form(″grade″)

Else

Rs(″grade″)=NULL End If

If Request.Form(″tel″)〈〉″″Then

Rs(″tel″)=Request.Form(″tel″)

Else

Rs(″tel″)=NULL

End If

If Request.Form(″email″)〈〉″″Then

Rs(″email″)=Request.Form(″email″)

Else

Rs(″email″)=NULL

End If

Rs.update

Response.Redirect ″index.asp″ ′添加成功,则返回首页

Else

Response.Write ″请将关键信息(*)填写完整,″

Response.Write ″〈A href=′add_form.asp′〉重新添加〈/A〉″

End If

%〉

在首页index.asp 中单击 “添加新学生”按钮,就会打开图7-16所示的添加新记录。当填写完整信息后,单击“提交”按钮,就可以将新记录添加到数据表student中,然后重定向回首页, 若输入的关键信息不完整, 则会提示用户重新填写。

7. 修改成员表单文件change_form.asp

代码如下:

〈!--#Include file=″odbc_conn.asp″--〉

〈HTML〉

〈HEAD〉

〈TITLE〉修改记录表单〈/TITLE〉

〈/HEAD〉

〈BODY〉

〈H2 align=″center″〉修改记录〈/H2〉

〈%

Dim strSql,Rs,V_id

V_id=Request .QueryString (″v_id″)

strSgl=″select*from student where id=″&V_id

Set Rs=Server .CreateObject (″ADODB.RecordSet″)

Rs .Open strSgl,Conn,1,3

%〉

〈DIV align=″center″〉

〈FORM method=″POST″action=″change .asp″〉

〈TABLE border=″1″cellpadding=″0″cellspacing=″0″width=″100%″〉

〈TR〉

〈TD width=″39%″align=″center″〉学   号〈/TD〉

〈TD width=″61%″align=″left ″〉

〈INPUT type=″text″name=″s_id″size=″20″value=〈%=Rs (″s_id″)%〉〉*

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉姓   名〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″text ″name=″name″ size=″20″value=〈%=Rs (″name″)%〉〉*

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉性    别〈/TD〉

〈TD width=″61%″align=″left″〉

〈% If Rs (″sex″)=″男 ″Then %〉

〈INPUT type=″radio″name=″sex″value=″男″checked〉男

〈INPUT type=″radio″name=″sex″value=″女″〉女

〈%Else %〉

〈INPUT type=″radio″name=″sex″value=″男″〉男

〈INPUT type=″radio″name=″sex″value=″女″checked〉女

〈%End If %〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉出生 日期〈/TD〉

〈TD width=″61%″align=″left ″〉

〈INPUT type=″text″name=″birthday″size=″20″value=〈%=Rs (″birthday″)%

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉专   业〈/TD〉

〈TD width=″61%″align=″left ″〉

〈INPUT type=″text″name=″class″size=″20″value=〈%=Rs (″class″)%〉〉*

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉成   绩〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″text″name=″grade″ size=″20″value=〈%=Rs (″grade″)%〉〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉电   话〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″text ″name=″tel″size=″20″value=〈%=Rs (″tel″)%〉〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″39%″align=″center″〉电子邮箱〈/TD〉

〈TD width=″61%″align=″left″〉

〈INPUT type=″text″name=″email″size=″20″value=〈%=Rs (″email″)%〉〉

〈/TD〉

〈/TR〉

〈TR〉

〈TD width=″78%″align=″center″colspan=″2″〉

〈INPUT type=″hidden″name=″V id″value=〈%=V id%〉〉

〈INPUT type=″submit″value=″提交 ″name=″B1″〉

〈/TD〉

〈/TR〉

〈/TABLE〉

〈/FORM〉

〈/DIV〉

〈/BODY〉

〈/HTML〉

程序运行结果如图7- 17所示。

图7-17 change_form.asp运行结果

8.修改成员文件change.asp

〈!--#Include file=″odbc_conn .asp″--〉

〈%

Dim V id

V_id=Request .Form(″V_id″)

′如果上面的信息填全了,就修改记录,否则给出错误信息

If Request .Form(″s_id″)〈〉″″And Request .Form(″name″)〈〉″″And Request .Form

(″class″)〈〉″″Then

Dim strSql,Rs

strSql=″select*from student where id=″ & Vid

Set Rs=Server .CreateObject (″ADODB.RecordSet″)

Rs .Open strSgl,Conn,1,3

Rs (″s_id″)=Request .Form(″s_id″)

Rs (″Name″)=Request .Form(″name″)

Rs (″sex″)=Request .Form(″sex″)

If Request .Form(″birthday″)〈〉″″Then

If IsDate (CDate (Request .Form(″birthday″)))Then

Rs (″birthday″)=CDate (Request .Form(″birthday″))

End If

Else

Rs (″birthday″)=NULL

End If

Rs (″class″)=Request .Form(″class″)

If Request .Form(″grade″)〈〉″″Then

Rs (″grade″)=Request .Form(″grade″)

Else

Rs (″grade″)=NULL

End If

If Request .Form(″tel″)〈〉″″Then

Rs (″tel″)=Request .Form(″tel ″)

Else

Rs (″tel ″)=NULL

End If

If Request .Form(″email″)〈〉″″Then

Rs (″email″)=Request .Form(″email″)

Else

Rs (″email″)=NULL

End If

Rs .update

Response .Redirect ″index .asp″ ′修改成功, 则返回首页

Else

Response .Write ″请将关键信息 (*)填写完整,

Response.Write ″〈a href=′change_ form.asp?v_id=″& V_id & ″′〉重新修改〈/a〉″

End If

%〉

9.删除成员文件delete.asp

〈!--#Include file=″odbc conn .asp″- -〉

〈% _

Dim str Sql,Rs,V--id

V_id=Request .Query String (″V_id″)

str Sql=″select*from student where id=″&V_id

Set Rs=Server .CreateObject (″ADODB.RecordSet″)

Rs .Open str Sgl,Conn,1,3

Rs .Delete

Rs .update

Response .Redirect ″index .asp″ ′删除成功, 则返回首页

%〉

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈