《Web数据库的操作.ppt》由会员分享,可在线阅读,更多相关《Web数据库的操作.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第12章章 Web数据库的操作数据库的操作n12.1 数据库访问流程数据库访问流程n12.2 数据库的连接数据库的连接n12.3 数据的查询控制数据的查询控制n12.4 数据的添加、删除和修改数据的添加、删除和修改本章学习目标本章学习目标l lASP访问数据库的流程访问数据库的流程l l在在ASP中连接数据库的中连接数据库的4种方法种方法l l数据库的常用查询方法数据库的常用查询方法l l如何确定用户的操作权限如何确定用户的操作权限l l进行数据添加操作的方法进行数据添加操作的方法l l进行数据删除操作的方法进行数据删除操作的方法l l进行数据修改操作的方法进行数据修改操作的方法12.1 数
2、据库访问流程数据库访问流程进行数据源操作的步骤如下:进行数据源操作的步骤如下:n(1)创创建建与与数数据据库库的的连连接接,可可以以使使用用ADO中中的的Connection对对象象或或RecordSet对对象象的的相相关关属属性性和和方方法。法。n(2)设设定定要要操操作作数数据据库库的的命命令令,可可以以使使用用ADO中中的的Connection对对象象、Command对对象象或或RecordSet对对象的相关方法和属性来完成。象的相关方法和属性来完成。n(3)执执行行命命令令,可可以以使使用用ADO中中的的Connection对对象、象、Command对象或对象或RecordSet对象的
3、相关方法。对象的相关方法。n(4)得得到到数数据据后后,就就可可以以执执行行对对数数据据的的浏浏览览、增增加加、删删除除、修修改改等等操操作作,这这一一步步通通常常使使用用RecordSet对对象象的有关方法和属性完成。的有关方法和属性完成。n(5)关闭数据库,清除有关对象。)关闭数据库,清除有关对象。返回首页图12-1 ADO存取数据源流程返回本节12.2 数据库的连接数据库的连接(1)在)在Connection对象中设置对象中设置ConnectionSTRing参数时,参数时,可以通过设置系统数据源(可以通过设置系统数据源(System DSN),),即通过设置即通过设置ODBC的方法来连
4、接数据库。关于的方法来连接数据库。关于DSN的设定请参阅前面的章节。在的设定请参阅前面的章节。在ASP中利用中利用DSN连接数据库的代码如下:连接数据库的代码如下:Set conn=Server.CreateObject(ADODB.Connection)conn.Open DSN=txl;UID=sa;PWD=;Database=txl(2)如果不采用如果不采用DSN连接数据库,在设置连接数据库,在设置ConnectionSTRing参数时,可以采用直接指定参数时,可以采用直接指定ODBC驱动程序连接数据库,连接驱动程序连接数据库,连接SQL Server数据库的代码如下:数据库的代码如下:
5、Set conn=Server.CreateObject(ADODB.Connection)sTRProvider=Driver=SQL Server;Server=zjf;Database=txl;UID=sa;PWD=;conn.Open sTRProvider返回首页(3)通过)通过OLE DB连接。代码如下:连接。代码如下:Set conn=Server.CreateObject(ADODB.Connection)sTRPro=Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa;Password=;conn.
6、Open sTRPro(4)在其他对象中,也可以通过设置在其他对象中,也可以通过设置ActiveConnection参数,完成对参数,完成对数据源连接的设置。以常用的数据源连接的设置。以常用的RecordSet对象为例,可以使用该对象的对象为例,可以使用该对象的Open方法,利用设置好的方法,利用设置好的ActiveConnection参数完成对数据库的连接,参数完成对数据库的连接,程序代码如下:程序代码如下:Set rs=Server.CreateObject(ADODB.RecordSet)rs.Open t_student,Provider=sqloledb;Data Source=zj
7、f;Initial Catalog&_=txl;User ID=sa;Password=;,adOpenStatic,adLockreadOnly,adCmdTable返回本节12.3 数据的查询控制数据的查询控制n数数据据库库在在网网络络中中的的应应用用大大部部分分集集中中在在数数据据的的查查询询操操作作上上。数数据据查查询询需需要要使使用用ADO对对象象中中的的Connection对象和对象和RecordSet对象。对象。n进行数据查询时,主要使用进行数据查询时,主要使用SQL语句中的语句中的Select语句,通过该语句就可以得到所要查询语句,通过该语句就可以得到所要查询的数据记录。的数据
8、记录。n下面的例子将介绍如何利用下面的例子将介绍如何利用Session对象和对象和RecordSet对象的对象的AbsolutePosition属性以属性以一页或一条为单位来浏览查询结果。一页或一条为单位来浏览查询结果。返回首页例例12-1:第第1步:建立步:建立ASP查询,文件名为查询,文件名为select.asp。在这个查询中,使用了在这个查询中,使用了Session对象存储对象存储RecordSet对象,数据库的连接使用了对象,数据库的连接使用了RecordSet对对象的象的Open方法。程序代码如下:方法。程序代码如下:学号学号 姓名姓名 性别性别 电话电话 籍贯籍贯 班级班级 民族民
9、族%记录开始时,当前数据指针在记录开始时,当前数据指针在RecordSet对象的位置对象的位置 Session(start)=Session(rs).AbsolutePosition输出表中的数据输出表中的数据For j=0 To Session(flag)-1 Response.Write 记录结束时,当前数据指针在记录结束时,当前数据指针在RecordSet对象的位置对象的位置 Session(End)=Session(rs).Absoluteposition其中其中Session(rs).fields.count表示表的字段数表示表的字段数 For i=0 To Session(rs).
10、fields.count-1把当前的数据记录显示出来把当前的数据记录显示出来 Response.Write&Session(rs).fields(i).value&Next Response.Write 移移到到下下一一条条数数据据记记录录,然然后后判判断断是是否否到到表表尾尾,如如果果是是,则则把把数数据据指指针针移移到表头到表头 Session(rs).MoveNext If Session(rs).Eof Then Session(rs).MovePrevious Exit For End IfNextResponse.Write%第第2步步:建建立立具具有有翻翻页页功功能能的的ASP程
11、程序序,文文件件名名为为link.asp。该该文文件件将将显显示示“上上一一页页”、“下下一一页页”、“开开始始记记录录”、“结结束束记记录录”和和“数数据据总总条条数数”等等信信息息,并并完完成成一一定定的的链链接接关关系系,如如“上一页上一页”及及“下一页下一页”加入了超链接。加入了超链接。注注意意:当当记记录录指指针针位位于于第第一一页页时时,“上上一一页页”没没有有超超链链接接,而而当当记记录录指指针针位位于于最最后后一一页页时时,“下一页下一页”没有超链接。没有超链接。程序代码如下:程序代码如下:%Response.Write 数据总条数:数据总条数:&Session(rs).Rec
12、ordCount&判断是否到表尾或记录解释否,如果是,则只给判断是否到表尾或记录解释否,如果是,则只给“上一页上一页”加上超链加上超链接接If(Session(rs).Eof)or(Session(End)=Session(rs).RecordCount)Then Response.Write 上一页上一页|Response.Write 下一页下一页否则看是不是表头,如果是则只给否则看是不是表头,如果是则只给“下一页下一页”加上超链接加上超链接ElseIf(Session(rs).Bof)or(Session(start)=1)Then Response.Write 上一页上一页|Respon
13、se.Write 下一页下一页其他情况,都加上超链接其他情况,都加上超链接Else Response.Write 上一页上一页|Response.Write 下一页下一页 End IfResponse.Write 开始记录:开始记录:&Session(Start)&,结束记录:结束记录:&Session(End)&。%图12-2 数据控制程序结果1:显示首记录图12-3 数据控制程序结果2:显示表中最后的数据记录返回本节12.4 数据的添加、删除和修改数据的添加、删除和修改n12.4.1 用户操作权限用户操作权限n12.4.2 数据的添加数据的添加n12.4.3 数据的删除数据的删除n12.4
14、.4 数据的修改数据的修改返回首页12.4.1 用户操作权限用户操作权限n1确认用户的权限确认用户的权限n可可以以先先将将用用户户的的名名称称、密密码码和和权权限限代代码码存存放放在在一一个个数数据据表表中中,当当用用户户登登录录网网站站时时,确确认认用用户户名名和和密密码码后后,从从数数据据库库中中取取得得该该用用户户的的权权限限代代码码,然然后后利利用用Session变变量量标标识识该该用用户户。假假设设用用户户的的相相关关信信息息都都存存放放在在表表users中中,程程序序代码如下:代码如下:2确认用户的操作确认用户的操作在其他需要验证用户的页面通过该在其他需要验证用户的页面通过该Ses
15、sion变变量识别用户,代码如下:量识别用户,代码如下:If Session(UserLevel)1 Then Response.Redirect Error.asp End If图12-5 用户没有操作权限返回本节12.4.2 数据的添加数据的添加n在在网网站站中中,经经常常有有添添加加数数据据记记录录的的需需求求。如如一一个个提提供供电电子子邮邮件件服服务务的的网网站站,常常常常有有人人申申请请加加入入,这这时时就就要要用用到到添添加加用用户户资资料料的的功功能能。添添加加数数据据记记录录的的方方法法很很多多,这这里里主主要要介介绍绍两两种种。一一种种是是利利用用SQL语语句句中中的的In
16、sert命命令令,另另一一种种是是利利用用ADO对对象象之之一一的的RecordSet对对象象的的AddNew方法。方法。例例12-3:第第1步:首先创建一个添加数据的页面(步:首先创建一个添加数据的页面(INPUT.htm),),在该页面中详细列在该页面中详细列出用户需输入的项目。其代码如下:出用户需输入的项目。其代码如下:学学 生生 基基 本本 数数 据据 录录 入入 姓名:姓名:学号:学号:班级:班级:性别:性别:男男女女 民族:民族:籍贯:籍贯:联系电话:联系电话:图12-6 输入页面显示第第2步步:建建立立表表单单处处理理程程序序(d_ins.asp),在在该该程程序序中中利利用用S
17、QL语语句句中中的的Insert命命令令添添加加数数据据记记录录。这这里里将将示示范范使使用用Connection对象的对象的Execute方法运行方法运行Insert命令。命令。0 Then Response.Write 系统发生系统发生&个错误!个错误!Else Response.Write 数据添加成功!数据添加成功!End IfSet conn=nothing%图12-7 数据录入正确和错误的显示第第3步:在添加数据时还可以利用步:在添加数据时还可以利用RecordSet对象的对象的AddNew方方法增加数据记录。程序代码如下:法增加数据记录。程序代码如下:注意:注意:不能以只读方式打
18、开表。不能以只读方式打开表。返回本节12.4.3 数据的删除数据的删除例例12-4:第第1步步:建建立立删删除除页页面面,在在该该页页面面中中可可以以选选择择删删除除的的记记录。其显示结果如下图录。其显示结果如下图12-8所示。所示。第第2步:建立数据删除程序,可以利用步:建立数据删除程序,可以利用SQL的的Delete命令删除数据记录。程序命令删除数据记录。程序代码如下:代码如下:第第3步:在删除记录时,还可以利用步:在删除记录时,还可以利用RecordSet对象的对象的Delete方法来删除表方法来删除表中的数据记录,如果要删除的记录可能不止一个,应该采用中的数据记录,如果要删除的记录可能
19、不止一个,应该采用UpdateBatch方方法。程序代码如下:法。程序代码如下:返回本节12.4.4 数据的修改数据的修改例例12-5:第第1步步:建建立立数数据据修修改改页页面面。在在修修改改数数据据时时,应应该该向向用用户户显显示示当当前前所所选选择择记记录录的的内内容容,便便于于修修改改。因因此此,在在程程序序的的代代码码中中除除了了能能够够获获得得被被操操作作的的记记录录外外(如如上上节节所示),还要回显记录内容。程序代码如下所示:所示),还要回显记录内容。程序代码如下所示:学学 生生 基基 本本 数数 据据 录录 入入 姓名:姓名:input type=text name=name
20、size=20 value=学号:学号:input type=text name=number size=20 value=班级:班级:input type=text name=class size=20 value=性别:性别:option value=男男女女 民族:民族:input type=text name=minzu size=20 value=籍贯:籍贯:input type=text name=jiguan size=20 value=联系电话:联系电话:input type=text name=phone size=20 value=在在上上例例中中,显显示示每每个个字字段段
21、的的同同时时显显示示了了其其对对应应的的取取值值,在在图图12-7的页面中选择的页面中选择“修改修改”后,屏幕显示如图后,屏幕显示如图12-9所示。所示。图12-9 修改页面显示第第2步步:建建立立数数据据修修改改程程序序。可可以以利利用用SQL语语句句中中的的Update命令修改表中的记录,程序代码如下:命令修改表中的记录,程序代码如下:%取得用户输入的数据取得用户输入的数据t_name=Trim(request.form(name)t_number=Trim(request.form(number)t_class=Trim(request.form(class)t_sex=Trim(req
22、uest.form(sex)t_minzu=Trim(request.form(minzu)t_phone=Trim(request.form(phone)t_jiguan=Trim(request.form(jiguan)创建数据库的连接创建数据库的连接Set conn=Server.CreateObject(ADODB.Connection)strProvider=Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa;Password=;conn.Open strProvider设置修改时的设置修改时的SQL语句语
23、句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=UPDATE t_student SET For i=0 To ubound(field)sql=sql&field(i)&=&value(i)&If i ubound(field)Then sql=sql&,Else sql=sql&where t_number=&t_number End IfNext执行修改操作执行修改操作conn.Execute sqlIf 0 Then Response.Write 系统发生系统发生&个错误!个错误!Else Response.Write 你的信息已成功修改你的信息已成功修改!End IfSet conn=nothing%第第3步步:也也可可以以利利用用RecordSet对对象象的的Update或或UpdateBatch方法修改表中的数据记录,程序代码如下:方法修改表中的数据记录,程序代码如下:返回本节
限制150内