Web数据库的操作课件

PPT
  • 阅读 129 次
  • 下载 0 次
  • 页数 51 页
  • 大小 528.000 KB
  • 2022-11-13 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Web数据库的操作课件
可在后台配置第一页与第二页中间广告代码
Web数据库的操作课件
可在后台配置第二页与第三页中间广告代码
Web数据库的操作课件
可在后台配置第三页与第四页中间广告代码
Web数据库的操作课件
Web数据库的操作课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 51
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Web数据库的操作课件.ppt,共(51)页,528.000 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-6078.html

以下为本文档部分文字说明:

第12章Web数据库的操作12.1数据库访问流程12.2数据库的连接12.3数据的查询控制12.4数据的添加、删除和修改第1页,共51页。本章学习目标lASP访问数据库的流程l在ASP中连接数据库

的4种方法l数据库的常用查询方法l如何确定用户的操作权限l进行数据添加操作的方法l进行数据删除操作的方法l进行数据修改操作的方法第2页,共51页。12.1数据库访问流程进行数据源操作的步骤如下:(1)创

建与数据库的连接,可以使用ADO中的Connection对象或RecordSet对象的相关属性和方法。(2)设定要操作数据库的命令,可以使用ADO中的Connection对象、Command对象或RecordSet对象的相关方法和属性来完成。(3)执行命令,

可以使用ADO中的Connection对象、Command对象或RecordSet对象的相关方法。(4)得到数据后,就可以执行对数据的浏览、增加、删除、修改等操作,这一步通常使用RecordSet对象的有关方法和属性完成。(5)关闭数据库,清除有关对象。返回首页第3页,共51页。图12

-1ADO存取数据源流程返回本节第4页,共51页。12.2数据库的连接(1)在Connection对象中设置ConnectionSTRing参数时,可以通过设置系统数据源(SystemDSN),即通过设置ODBC的方法来连接数据库。关于DSN的设定请参阅前

面的章节。在ASP中利用DSN连接数据库的代码如下:Setconn=Server.CreateObject("ADODB.Connection")conn.Open"DSN=txl;UID=sa;PWD=;Database=txl"(2)如果不采用DSN连接数据库,在设置Conne

ctionSTRing参数时,可以采用直接指定ODBC驱动程序连接数据库,连接SQLServer数据库的代码如下:Setconn=Server.CreateObject("ADODB.Connection")sTRProvider="Driver={SQLS

erver};Server=zjf;Database=txl;UID=sa;PWD=;"conn.OpensTRProvider返回首页第5页,共51页。(3)通过OLEDB连接。代码如下:Setconn=Server.CreateObject("ADODB.Connection")s

TRPro="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.OpensTRPro(4)在其他对象中,也可以通过设置ActiveConnecti

on参数,完成对数据源连接的设置。以常用的RecordSet对象为例,可以使用该对象的Open方法,利用设置好的ActiveConnection参数完成对数据库的连接,程序代码如下:Setrs=Server.CreateObject("ADODB.RecordSet")rs.Open"t_

student","Provider=sqloledb;DataSource=zjf;InitialCatalog"&_"=txl;UserID=sa;Password=;",adOpenStatic,adLockreadOn

ly,adCmdTable返回本节第6页,共51页。12.3数据的查询控制数据库在网络中的应用大部分集中在数据的查询操作上。数据查询需要使用ADO对象中的Connection对象和RecordSet对象。进行数据查询时,主要使用SQL语句中的Select语句,通过该语句

就可以得到所要查询的数据记录。下面的例子将介绍如何利用Session对象和RecordSet对象的AbsolutePosition属性以一页或一条为单位来浏览查询结果。返回首页第7页,共51页。例12-1:第1步:建立ASP查询,文件名为select.asp。在这个查询

中,使用了Session对象存储RecordSet对象,数据库的连接使用了RecordSet对象的Open方法。程序代码如下:<!--#includefile=adovbs.inc--><HTML><BODYbgcolor="#ccffcc"><%'设置每一

页所要显示的记录条数,这里为9条。Session("flag")=9'用RecordSet对象的Open方法连接数据库SetSession("rs")=Server.CreateObject("Adodb.recordSet")Constr="Provider=sqloledb;Da

taSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"第8页,共51页。Session("rs").cursorlocation=aduseclientsql="select*fromt_studentorderbyt_number"'

利用RecordSet对象的Open方法创建记录集Session("rs").Opensql,Constr,adOpenkeySet,adlockreadonly,adcmdtext%><%'输出表头,由于数据库中的字段

名称为英文,因此,采用HTML标记输出%><TABLEborder="1"bordercolor="#000000"cellspacing="1"cellpadding="0"align="center"><TRalign=centerv

align=middleheight=23><TD><B>学号</B></TD><TD><B>姓名</B></TD>第9页,共51页。<TD><B>性别</B></TD><TD><B>电话</B></TD><TD>

<B>籍贯</B></TD><TD><B>班级</B></TD><TD><B>民族</B></TD></TR><%'记录开始时,当前数据指针在RecordSet对象的位置Session("start")=Session("rs").AbsolutePosition'输出表中的数据Forj

=0ToSession("flag")-1Response.Write"<TRalign=centervalign=middle>"'记录结束时,当前数据指针在RecordSet对象的位置Session("End")=Session("rs").Absoluteposition'其中Sessi

on("rs").fields.count表示表的字段数Fori=0ToSession("rs").fields.count-1第10页,共51页。'把当前的数据记录显示出来Response.Write"<

TD>"&Session("rs").fields(i).value&"</TD>"NextResponse.Write"</TR>"'移到下一条数据记录,然后判断是否到表尾,如果是,则把数据指针移到表头Session("rs"

).MoveNextIfSession("rs").EofThenSession("rs").MovePreviousExitForEndIfNextResponse.Write"</TABLE>"%><%'引入另一个文件,完成翻

页功能%><!--#includefile=link.asp-->第11页,共51页。第2步:建立具有翻页功能的ASP程序,文件名为link.asp。该文件将显示“上一页”、“下一页”、“开始记录”、“结束记录”和“数据总条数”等信息,并完成一定的链

接关系,如“上一页”及“下一页”加入了超链接。注意:当记录指针位于第一页时,“上一页”没有超链接,而当记录指针位于最后一页时,“下一页”没有超链接。第12页,共51页。程序代码如下:<%Response.Write"<BR>数据总条数:"&Session("rs").RecordCou

nt&""'判断是否到表尾或记录解释否,如果是,则只给“上一页”加上超链接If(Session("rs").Eof)or(Session("End")>=Session("rs").RecordCount)Th

enResponse.Write"[<Ahref=""Query.asp?Method=Previous"">上一页</A>|"Response.Write"下一页]"'否则看是不是表头,如果是则只给

“下一页”加上超链接ElseIf((Session("rs").Bof)or(Session("start")=1))ThenResponse.Write"[上一页|"Response.Write"<Ahref=""Query

.asp?Method=Next"">下一页</A>]"第13页,共51页。'其他情况,都加上超链接ElseResponse.Write"[<Ahref=""Query.asp?Method=Previous"">上一页</A>|"

Response.Write"<Ahref=""Query.asp?Method=Next"">下一页</A>]"EndIfResponse.Write"开始记录:"&Session("Start")&"

,结束记录:"&Session("End")&"。"%>第14页,共51页。图12-2数据控制程序结果1:显示首记录第15页,共51页。图12-3数据控制程序结果2:显示表中最后的数据记录返回本节第16页,共51页。12.4数据的添加、删除和修改

12.4.1用户操作权限12.4.2数据的添加12.4.3数据的删除12.4.4数据的修改返回首页第17页,共51页。12.4.1用户操作权限1.确认用户的权限可以先将用户的名称、密码和权限代码存放在一个数据表中,当用户登录

网站时,确认用户名和密码后,从数据库中取得该用户的权限代码,然后利用Session变量标识该用户。假设用户的相关信息都存放在表users中,程序代码如下:第18页,共51页。<%'取得用户输入的用户名和密码,并去掉空格sTRUserName=Trim(Request.Form("Usern

ame"))sTRUserPassword=Trim(Request.Form("Userpassword"))'创建与数据库的连接SetobjDBConn=Server.Createobject("ADODB.Connection")sTRProvider="Provider=sqlol

edb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"objdbconn.OpensTRProvider'SQL查询字符串第19页,共51页。sTRSQL="SELECT*FROMt_userWHEREUserName='"&sTRU

serName&"'"SetobjRS=objDBConn.Execute(sTRSQL)'检查用户IfobjRS.EOFThen'无此用户Response.Redirect"UserLogin.asp"ElseIfTrim(objRS("UserPassword"

))=sTRUserPasswordThen'密码正确,找到用户Session("UserName")=objRS("UserName")第20页,共51页。Session("UserLevel")=objRS("UserLevel")'进入网站的网页Response.

Redirect"main.asp"Else'密码错误Response.Redirect"UserLogin.asp"EndIfSetobjRS=NothingSetobjDBConn=Nothing%>第21页,共51页。2.确认用户的操作在其他需要验证用户的页面通过该

Session变量识别用户,代码如下:IfSession("UserLevel")<1ThenResponse.Redirect"Error.asp"EndIf第22页,共51页。图12-5用户没有操作权限返回本节第23页,共51页。12.4.2数据的添加在网站中,经常

有添加数据记录的需求。如一个提供电子邮件服务的网站,常常有人申请加入,这时就要用到添加用户资料的功能。添加数据记录的方法很多,这里主要介绍两种。一种是利用SQL语句中的Insert命令,另一种是利用ADO对象之一的RecordSet对象的Add

New方法。第24页,共51页。例12-3:第1步:首先创建一个添加数据的页面(INPUT.htm),在该页面中详细列出用户需输入的项目。其代码如下:<HTML><BODYbgcolor="#ccffcc">

<H2align=center>学生基本数据录入</H2><HR><Formmethod=POSTname=addaction="d_ins.asp"><DIValign=center><TABLEborder=0><TR><TDh

eight="41">姓名:</TD><TD><inputtype="text"name="name"size="20"></TD></TR><TR><TDheight="35">学号:</TD>第25页,共51页。<TD><inputtype="text"name="num

ber"size="20"></TD></TR><TR><TDheight="36">班级:</TD><TD><INPUTtype="text"name="class"size="20"></TD></TR><TR><TDheight="34">性别:</TD><TD><SELECTsiz

e="1"name="sex"><OPTIONselectedvalue="男">男</OPTION><OPTIONvaluve="女">女</OPTION></SELECT></TD></TR><T

R><TDheight="33">民族:</TD><TD><INPUTtype="text"name="minzu"size="20"></TD></TR><TR>第26页,共51页。<TDheight="39">籍贯:</TD><TD><inputtype="text"name=

"jiguan"size="20"></TD></TR><TR><TDheight="37">联系电话:</TD><TD><INPUTtype="text"name="phone"size="20"></TD></TR></TABLE><INPUT

type=submitvalue="确定"name=B1><INPUTtype=reSetvalue="重填"name=B2></DIV></Form></BODY></HTML>第27页,共51页。图12-6输入页面显示第28页,共51页。第2步:建立表单处理程序(d_ins.

asp),在该程序中利用SQL语句中的Insert命令添加数据记录。这里将示范使用Connection对象的Execute方法运行Insert命令。<%onerrorresumeNext'取得用户输入的数据t_name=request

.form("name")t_number=request.form("number")t_class=request.form("class")t_sex=request.form("sex")t_minzu=request.form("minzu")t_ph

one=request.form("phone")t_jiguan=request.form("jiguan")'创建数据库的连接第29页,共51页。Setconn=Server.CreateObject("ADODB.Connection")strPr

ovider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.OpenstrProvider'添加时使用的字段fields=arr

ay("t_name","t_number","t_class","t_sex","t_mizu","t_phone","t_jiguan")values=array(t_name,t_number,t_class,t_sex,t_minzu,t_phone,t_jiguan)s

ql="INSERTINTOt_student("&Join(fields,",")&")VALUES('"&_Join(values,"','")&"')"第30页,共51页。'添加数据conn.Executesql'判断执行是否成功Ifcon

n.Errors.Count>0ThenResponse.Write"系统发生"&conn.errors.Count&"个错误!"ElseResponse.Write"数据添加成功!"EndIfSetconn=nothing%>第31页,共51页。图12-7数据录入正确和错误的显示

第32页,共51页。第3步:在添加数据时还可以利用RecordSet对象的AddNew方法增加数据记录。程序代码如下:<!--#includefile=adovbs.inc--><%'取得用户输入的数据t_name=request.f

orm("name")t_number=request.form("number")t_class=request.form("class")t_sex=request.form("sex")t_minzu=request.fo

rm("minzu")t_phone=request.form("phone")t_jiguan=request.form("jiguan")'创建数据库的连接第33页,共51页。Setconn=Server.CreateObject("ADODB.Connection")strProvi

der="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.OpenstrProvider'建立RecordSet对象Setrs=Server.createObject("A

DODB.RecordSet")'启动指定的数据表,注意要AdLockOptimistic方式打开rs.Open"t_student",strProvider,adOpenkeySet,adlockOptimis

tic'添加一条数据记录rs.AddNewrs("t_number").value=t_numberrs("t_name").value=t_namers("t_sex").value=t_sex第34页,共51页

。rs("t_class").value=t_classrs("t_mizu").value=t_minzurs("t_phone").value=t_phoners("t_jiguan").value=t_jiguan'将数据

记录回存到表中rs.UpdateSetrs=nothingSetconn=nothing%>注意:不能以只读方式打开表。返回本节第35页,共51页。12.4.3数据的删除例12-4:第1步:建立删除页面,在

该页面中可以选择删除的记录。其显示结果如下图12-8所示。第36页,共51页。第2步:建立数据删除程序,可以利用SQL的Delete命令删除数据记录。程序代码如下:<%'创建数据库的连接Setconn=Server.Crea

teObject("ADODB.Connection")strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=

;"conn.OpenstrProvider'取得被删除记录的标识t_number=Request("delid")'设定执行的SQL语句sql="DELETEFROMt_studentWHEREt_number="&t_number'执行删除操作conn.execu

tesqlResponse.Write"该记录已成功删除!"Setconn=nothing%>第37页,共51页。第3步:在删除记录时,还可以利用RecordSet对象的Delete方法来删除表中的数据记录,如果要删除的记录可能不止一个,应该采用UpdateBatch方法。程序代码如下:<!-

-#includefile=adovbs.inc--><%'取得被删除记录的标识t_number=Trim(Request("delid"))'创建数据库的连接Setconn=Server.CreateObject("ADODB.

Connection")strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.OpenstrProvider'建立RecordSet对象Setrs=Ser

ver.CreateObject("ADODB.RecordSet")'启动指定的数据表,注意要AdLockOptimistic方式打开rs.Open"t_student",Conn,adOpenkeySet,adlockOptimistic第3

8页,共51页。'利用循环检查记录,找到符合条件的记录,删除WhileNOTrs.EOFIftrim(rs("t_number").value)=t_numberThenrs.DeleteEndIfrs.MoveNextWen

d'将数据回存到数据库中rs.UpdateBatchrs.CloseSetconn=nothingSetrs=nothing%>返回本节第39页,共51页。12.4.4数据的修改例12-5:第1步:建立数据修改页面。在修改数据时,应该向用户显示当前所选择记录的内容,便

于修改。因此,在程序的代码中除了能够获得被操作的记录外(如上节所示),还要回显记录内容。程序代码如下所示:<!--#includefile=adovbs.inc--><%'取得被编辑记录的标识t_number=Request("editi

d")'创建数据库的连接第40页,共51页。Setconn=Server.CreateObject("ADODB.Connection")strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;Use

rID=sa;Password=;"conn.OpenstrProvider'建立RecordSet对象Setrs=Server.createObject("ADODB.RecordSet")'启动指定的数据表rs.Open"select*fromt_

studentwheret_number="&_t_number,conn,adOpenkeySet,adlockOptimistic'获得记录值t_name=rs("t_name")t_number=rs("t_numbe

r")t_class=rs("t_class")t_sex=rs("t_sex")t_minzu=rs("t_mizu")t_phone=rs("t_phone")t_jiguan=rs("t_jiguan")第41页,共51页。%><HTML

><BODYbgcolor="#ccffcc"onload="page_onload();"><H2align=center>学生基本数据录入</H2><HR><Formmethod=POSTname=addaction="d_edit.asp"><%'输出记录内容%><divalign

=center><TABLEborder=0><tr><tdheight="41">姓名:</td><td><inputtype="text"name="name"size="20"value="<%=Server.HTMLEncode(t_name)%>"></td></tr>

<tr><tdheight="35">学号:</td><td><inputtype="text"name="number"size="20"value="<%=Server.HTMLEncode(t_number

)%>"></td></tr><tr><tdheight="36">班级:</td><td><inputtype="text"name="class"size="20"value="<%=Server.HTMLEncode(t_class)%>"></td></tr

>第42页,共51页。<tr><tdheight="34">性别:</td><td><selectsize="1"name="sex"><optionvalue="<%=Server.HTMLEnco

de(t_sex)%>"><%=Server.HTMLEncode(t_sex)%></option><optionvalue="男">男</option><optionvaluve="女">女</option></select></td></tr><tr><tdheight="

33">民族:</td><td><inputtype="text"name="minzu"size="20"value="<%=Server.HTMLEncode(t_minzu)%>"></td></t

r><tr><tdheight="39">籍贯:</td><td><inputtype="text"name="jiguan"size="20"value="<%=Server.HTMLEncode(t_jiguan)%>"></

td></tr><tr>第43页,共51页。<tdheight="37">联系电话:</td><td><inputtype="text"name="phone"size="20"value="<%=Server.HTMLEncode(t_phone)%>"></td><

/tr></TABLE><INPUTtype=submitvalue="确定"name=B1><INPUTtype=reSetvalue="重填"name=B2></div></Form><%Setconn=not

hing%></BODY></HTML>在上例中,显示每个字段的同时显示了其对应的取值,在图12-7的页面中选择“修改”后,屏幕显示如图12-9所示。第44页,共51页。图12-9修改页面显示第45页,共51页。第2步:建立数据修改程序。可以利用SQ

L语句中的Update命令修改表中的记录,程序代码如下:<!--#includefile=adovbs.inc--><%'取得用户输入的数据t_name=Trim(request.form("name"))t_number=Trim(re

quest.form("number"))t_class=Trim(request.form("class"))t_sex=Trim(request.form("sex"))t_minzu=Trim(request.form("minzu"))t_phone=T

rim(request.form("phone"))t_jiguan=Trim(request.form("jiguan"))第46页,共51页。'创建数据库的连接Setconn=Server.Create

Object("ADODB.Connection")strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl;UserID=sa;Password=;"conn.OpenstrProvider'设置修改时的

SQL语句field=array("t_name","t_number","t_class","t_sex","t_mizu","t_phone","t_jiguan")value=array(t_name,t_number,t_class,t_sex,t_minzu,

t_phone,t_jiguan)sql="UPDATEt_studentSET"Fori=0Toubound(field)sql=sql&field(i)&"='"&value(i)&"'"Ifi<>ubound

(field)Thensql=sql&","Else第47页,共51页。sql=sql&"wheret_number="&t_numberEndIfNext'执行修改操作conn.ExecutesqlIfconn.Errors.Count>0ThenResponse.Write"系统发生"&co

nn.errors.Count&"个错误!"ElseResponse.Write"你的信息已成功修改!"EndIfSetconn=nothing%>第48页,共51页。第3步:也可以利用RecordSet对象的Update或UpdateBatch方法修改表中的数据记录,程序代码如下:

<!--#includefile=adovbs.inc--><%'取得被编辑记录的标识editid=Request("editid")'取得用户输入的数据t_name=Trim(request.form("name"))t_

number=Trim(request.form("number"))t_class=Trim(request.form("class"))t_sex=Trim(request.form("sex"))t_minzu=Trim(reque

st.form("minzu"))t_phone=Trim(request.form("phone"))t_jiguan=Trim(request.form("jiguan"))第49页,共51页。'利用Conne

ction对象连接数据库Setconn=Server.CreateObject("ADODB.Connection")strProvider="Provider=sqloledb;DataSource=zjf;InitialCatalog=txl

;UserID=sa;Password=;"conn.OpenstrProvider'建立RecordSet对象Setrs=Server.createObject("ADODB.RecordSet")'启动指定的数据表,

注意要AdLockOptimistic方式打开rs.Open"t_student",Conn,adOpenkeySet,adlockOptimistic'利用循环检查记录,找到符合条件的记录,修改whileNOTrs.EO

FIfTrim(rs("t_number").value)=t_numberThenrs("t_sex").value=t_sex第50页,共51页。rs("t_class").value=t_classrs("t_name").value=t_namers("t_mizu").value=t_

minzurs("t_phone").value=t_phoners("t_jiguan").value=t_jiguanEndIfrs.MoveNextWend'将数据回存到数据库中rs.UpdateBatchrs.Close

Setconn=nothingSetrs=nothing%>返回本节第51页,共51页。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?