ASP网页数据库课件第11章.ppt

上传人:sccc 文档编号:5033726 上传时间:2023-05-30 格式:PPT 页数:55 大小:395.02KB
返回 下载 相关 举报
ASP网页数据库课件第11章.ppt_第1页
第1页 / 共55页
ASP网页数据库课件第11章.ppt_第2页
第2页 / 共55页
ASP网页数据库课件第11章.ppt_第3页
第3页 / 共55页
ASP网页数据库课件第11章.ppt_第4页
第4页 / 共55页
ASP网页数据库课件第11章.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《ASP网页数据库课件第11章.ppt》由会员分享,可在线阅读,更多相关《ASP网页数据库课件第11章.ppt(55页珍藏版)》请在三一办公上搜索。

1、11.1 课前导读11.2 课堂教学11.3 上机练习11.4 课后作业,第11课 ASP与数据库,11.1 课前导读 1.网站数据库化 2.使用ADO访问数据库 3.ADO的特点 4.示例数据库,11.1 课前导读 作为一种既易于使用又可扩展的技术,ADO可以用于向网页添加数据库访问。使用ADO编写的应用程序可以存取在Internet上任何地方的资源,例如,你可以在家里通过浏览器填写购物单,去购买远在千里之外的物品。1.网站数据库化 将网站数据库化,就是使用数据库来管理整个网站。只要更新数据库的内容,网站的内容就会被自动更新。将网站数据库化的好处如下:,可以自动更新网页。采用数据库管理,只要

2、更新数据库的数据,网页内容就会自动得到更新,过期的网页也可以被自动拿掉。加强搜寻功能。将网站的内容储存在数据库中,可以利用数据库提供的强大搜寻功能,从多个方面搜寻网站的数据。可以实现各种基于Web数据库的应用。使用者只要使用浏览器,就可以通过Internet或Intranet内部网络,存取Web数据库的数据。可以使用在学校教学、医院、商业、银行、股市、运输旅游等各种应用上。例如银行余额查询、在线购书、在线查询、在线预定机票、在线医院预约挂号、在线电话费查询、在线股市买卖交易、在线学校注册选课,以及在线择友等。,2.使用ADO访问数据库 目前,Microsoft对应用程序访问各种各样的数据源所使

3、用的方法是OLE DB,OLE DB是一套组件对象模型(COM)接口,但它是相当复杂的。连接应用程序与OLE DB的桥梁就是ADO。可以使用ADO编写简洁和可扩展的脚本,连接到与OLE DB兼容的数据源,如数据库、电子表格、顺序数据文件或电子邮件目录。使用ADO的对象模型,可以轻松地(使用VBScript或JScript等脚本语言)访问这些接口,并将数据库功能添加到您的Web应用程序中。另外,还可以使用ADO访问与开放式数据库互连(ODBC)兼容的数据库。ADO可以使用VBScript、JavaScript脚本语言来控制数据库的存取以及输出查询结果。,3.ADO的特点 ADO可以用来建造客户/

4、服务器结构及Web的应用,它具有以下的特点:支持批处理(Batch Updating),可以分批处理客户端提出的请求。支持存储过程(Stored Procedures),可使用in/out参数给存储过程输入及输出值,并可以取得存储过程的返回值。可以使用存储过程或批处理SQL指令,传回多组记录集的功能。,4.示例数据库 虽然可以使用多种数据库系统来从事ASP网页数据库的设计,但是由于Microsoft Access属于Microsoft Office家族,取得较为容易,且界面与Office家族一致,使用容易,因此本教程采用Microsoft Access进行网页数据库的设计。本课的示例数据库文件

5、rsgl.mdb中包含的“职工工资”表的结构见表11-1。,表11-1“职工工资”表的结构,11.2 课堂教学 11.2.1 ADO的概念 11.2.2 访问数据库,11.2.1 ADO的概念 1.ADO对象模型 2.Connection对象 3.Command对象 4.Recordset对象,1.ADO对象模型 ADO对象模型包括7个对象和3个集合,如图11-1所示。其中对象及集合的说明见表11-1。表11-1 ADO对象描述,表11-2 ADO集合描述,说明:在ADO对象模型中最为重要的对象是三个一般对象:Connection对象、Command对象和Recordset对象,通过这三个对象

6、,可以方便地建立数据库连接,执行SQL查询及存取查询的的结果。,图11-1 ADO对象模型,2.Connection对象 ASP使用ADO对各种数据源进行各种操作,其中,Connection对象是必不可少的,Connection对象可以用来在应用程序和数据库中建立一条数据传输连线,在这个基础之上可以使用Command对象及Recordse对象来对Connection对象所连接的数据库进行插入删除、更新和查询等操作。同拨打电话一样,建立一个Connection对象就像是拿起话筒,打开一个Connection对象类似于拨号,而使用Command对象及Recordse对象已经是在用这条线路通话了。,

7、Connection对象的常用属性见表11-3。表11-3 Connection对象的常用属性,Connection对象的常用方法见表11-4。表11-4 Connection对象的方法及描述,下面对部分方法进行详细说明。,Open方法:建立一个与数据源的连接对象,打开与数据源的连接。其语法格式为:Connobject.Open connectionstring,UserId,Password 其中:Connectstring为可选参数,它是一个字符串变量,包含链接的信息。用法参见Conectionstring属性。UserId为可选参数,它是一个字符串变量,包含建立连接时访问数据库使用的用户

8、名称。Password为可选参数,它是一个字符串变量,包含建立连接时访问数据库使用的密码。,Close方法:关闭与数据源的连接,并且释放与连接有关的系统资源。其语法格式为:Connobject.close 其中:Connobject为已经创建的Connection对象。使用Close方法关闭Connection对象,但没有从内存中删除该对象。因此一个关闭的connection对象还可以用open方法打开而不必再次创建一个connection对象。此外,在使用close方法关闭连接时,也将关闭以此连接相关的所有活动的recoordset对象。但是,与此连接相关的command对象将不受影响,只不

9、过command对象不再参与这个连接。为了释放connection对象所占用的所有资源,可以用下面的方法:Set Connobject=nothing,Execute方法:执行SQL命令或存储过程,以实现与数据库的通讯。其语法为:有返回记录的格式:Set Rs=Connobject.Execute(CommandText,ReccordAffected,Options)无返回记录的格式:Connobject.Execute CommandText,ReccordAffected,Options 其中:Rs为创建的Recordsed对象;Connobject为已经创建的Connection对象。

10、,CommandType是一个字符串,它包含一个表名,或某个将被执行的SQL语句;ReccordAffected为可选参数,返回此次操作所影响的记录数。Options为可选参数,用来指定参数的CommandText参数的性质,即用来指定ADO如何解释CommandText参数的参数值,其取值与意义见表11-5。表11-5 Options参数的取值及意义,3.Command对象 Command对象用来定义数据库的查询动作,这个查询一般采用SQL语句,大部分数据库都会支持SQL语言解释。通过和SQL Server的查询及存储过程的良好结合,Command对象有更强大的数据库访问能力,无论是对数据库

11、的插入、更新和删除这类无需返回结果集的操作,还是对Select查询这样需返回结果集的操作都一样简单。,Command对象的常用属性见表11-6。表11-6 Command对象的属性,说明:CommandType属性指示CammandText属性中设定的“命令字符串”的类型,即用来指ADO如何解释CammandText参数的参数值,它的取值与意义与表11-5中Options参数的取值及意义相同。Command对象的常用方法有Execute方法,用来运行CommandText属性所设定的SQL查询、SQL说明命令或存储过程,以实现与数据库的通讯。其语法为:有返回记录的格式:Set Rs=Comm.

12、Execute(RecordsAffected,Parameters,Options),无返回记录的格式:Comm.Execute RecordsAfiected.Parameters,Options 其中:Rs为创建的Recordsed对象;Comm为已经创建的Command对象。RecordAfiected为可选参数,返回此次操作所影响的记录数。Parameters为可选参数,表示一个SQL语句的参数集合。Options为可选参数,用来指定ADO如何解释CommandText参数的参数值,它的取值与意义与表11-5中Options参数的取值及意义相同。,4.Recordset对象 Reco

13、rdset对象对应着Command对象的查询返回结果,或者是直接建立的一个带查询的结果集。它把从数据库内查询到的结果封装在一起,并提供简单快捷的方式去访问每一条记录内每一字段的数据,在后面的章节我们会详细去了解这些方式。Recordset对象实际上是依附于Connection对象和Command对象之上的。通过建立及开启一个Connection对象,可以与我们关心的数据库建立连线;通过使用Command对象,则可以告诉数据库我们想要做什么:是插入一条记录,还是查找符合条件的记录;通过使用Recordset对象,则可以方便自如地操作Command对象返回的结果。这三个对象中的每个都是必要的,缺一

14、不可。,(1)Recordset对象的属性 Recordset对象的常用属性见表11-7。表11-7 Recordset对象的常用属性,说明:CursorType属性指定RecordSet对象所使用的光标类型。不同的光标类型决定了对RecordSet所能做的操作。共有四种光标类型:0-前滚光标(ForwardOnlyCursor),光标只能向前移动,执行效率高,是Cursor的默认值;1-键盘光标(KeysetCursor),光标可向前向后移动,RecordSet记录集同步反映自它创建后其他用户所作的修改和删除,但却不能同步反映自它创建后其他用户新增加的记录;2-动态光标(DynamicCur

15、sor),光标可向前向后移动,任何时候RecordSet记录集都同步反映其他用户的任何操作;3-静态光标(StaticCursor),光标可向前向后移动,自创建后无法同步反映其他用户所做的任何操作,它的功能简单但消耗资源少。,LockType属性表示编辑时记录的锁定类型。它决定了当不止一个用户试图同时改变一个记录时,RecordSet如何处理数据记录。它的取值有:0-只读锁定,记录只读,不能更新RecordSet,为LockType的默认值;1-悲观锁定,编辑记录开始立刻锁定,直到提交给数据提供者;2-乐观锁定,一次锁定一条记录,只有调用Update方法提交数据时才锁定记录;3-乐观的批量更新

16、,允许同时更新多条记录。,Filter属性用来设定一个过滤条件,以便对RecordSet记录进行过滤。使用的优点是可以在已经存在的RecordSet对象上进一步过滤出所需的记录。但这种方式增加了系统的开销。它有两种使用方式:方式1:使用关系表达式,例如:Rs.Filter=bh 30 其中Rs是已经创建的RecordSet对象;bh是RecordSet对象的字段(数值型)。,方式2:使用准则常量:0-清除以前的Filter,允许看见所有记录;1-只允许查看已修改但未提交的记录;2-允许查看最后删除、Resync、批量更新、或删除批量方式所影响的记录;3-允许查看数据库最后读取结果的数据。例如:

17、Rs.Filter=1 可以实现更新整个批量记录之前只显示用户修改的记录,使用户在提交数据之前能够进行检查。,BookMark属性用来存储当前记录的位置。并非每一个数据提供者都支持这个属性。当创建一个允许使用BookMark属性的RecordSet对象时,给每个记录都标上一个独一无二的BookMark,利用BookMark可以返回访问过的记录。Status属性对于多用户连接管理特别有用,通过该属性可以看出更新记录的失败原因。它的返回值和意义如表11-8所示。,表11-8 Status属性的值和意义,(2)RecordSet对象的方法 RecordSet对象的方法及意义见表11-9。表11-9

18、RecordSet对象的方法及意义,说明:Open方法:打开一个RecordSet对象。其语法格式为:Rs.OpenSource,ActiveConnection,CursorType,LockType,Option,其中:Rs为已经创建的RecordSet对象;Source为可选参数,可以是一个Command对象名、SQL字符串存储过程或数据库的表名;ActiveConnection参见ActiveConnection属性;CursorType是RecordSet对象所使用的光标类型,用法参见CursorType属性;LockTypec是编辑RecordSet对象记录时所使用的锁定类型,用法

19、参见LockType属性;Options指示数据提供者如何处理Source的内容类型,它的取值与意义见表11-5。,使用Close方法关闭RecordSet对象,并不从内存中删除该对象,只是无法读取其中的数据,但仍然可以读取它的属性。因此一个关闭的ReccordSet对象还可以用Open方法打开并保持其原有属性。如果正在进行编辑更新数据的操作,在调用Close方法前必须先调用Update或CancelUpdate方法,否则将会出现错误。如果以批量模式更新数据记录(Reccordset的LockType属性设为3),那么对缓冲区数据的修改将全部丢失。另外,使用Clone方法复制一个已经打开的Re

20、cordSet对象,调用Close方法不影响任何复制的RecordSet对象。用下面的命令可以释放RecordSet对象所占用的所有资源:set Rs=nothing,Move方法用于把记录指针指向指定的记录。其语法格式为:Move n,start 其中n为要移动的记录数,取正时表示向前(下)移动,取负时表示向后(上)移动;start是可选参数,表示移动的起点。使用Move、MoveFirst、MoveLast、MovePrevious、MoveNext方法移动记录指针时,需要注意RecordSet对象的光标类型。如“前滚光标”限制了记录指针只能向前移动。,GetRows方法从一个Record

21、Set对象读取一行或多行记录到一个数组中,一般用来读取大量的数据。其语法格式为:Myarray=Rs.GetRows(rows,start,fields)其中Myarray为目标数组名;Rs为已经创建的RecordSet对象;Rows为返回数组的行数;start为读取数据的起点(书签);Fields为RecordSet的字段。AddNew方法用于增加一条空纪录。调用该方法时在RecordSet对象中增加一个新行,并将指针移到行首以准备保存新数据。该方法一般和Update方法相搭配共同完成数据更新的任务。不过这种方法很消耗资源、效率最低,最好用SQL语句来实现数据更新。,Delete方法用于删除

22、当前记录。当RecordSet工作在批量方式时,可实现批量删除。不过该方法非常消耗系统资源,效率非常低。其语法格式为:Delete value 其中value=1(默认值)表示该方法只删除当前记录;value=2表示该方法删除所有由Filter属性设定的记录。,11.2.2 访问数据库 1.连接到数据源 2.使用Recordset对象处理结果,1.连接到数据源(1)创建连接字符串 创建Web数据应用程序的第一步是为ADO提供一种定位并标识数据源的方法。这一步通过“连接字符串”实现。连接字符串是一系列用分号分隔的参数,用于定义诸如数据源提供程序和数据源位置等参数。ADO使用连接字符串标识OLE

23、DB提供程序并将提供程序指向数据源。提供程序是一个组件,用来描述数据源并以行集合的形式将信息展示给应用程序。,表11-10列出了几种通用数据源的OLE DB连接字符串。表11-10 常用的通用数据源的OLE DB连接字符串,为了向后兼容性,ODBC的OLE DB提供程序支持ODBC连接字符串语法。表11-11列出了常用的ODBC连接字符串。,表11-11 常用的ODBC连接字符串,(2)连接到数据源 ADO提供的Connection对象,用于建立和管理应用程序与OLE DB兼容数据源或ODBC兼容数据库之间的连接。Connection对象的属性和方法可以用来打开和关闭数据库连接,并发布对更新信

24、息的查询。要建立数据库连接,首先必须创建Connection对象实例。下述代码创建Connection对象实例,接着打开一个连接:创建connection对象Set conn=Server.CreateObject(ADODB.Connection)使用OLE DB连接字符串打开连接conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:MarketDatarsgl.mdb,或 创建connection对象 set conn=server.createobject(adodb.Connection)创建OLE DB连接字符串 CS=Pr

25、ovider=Microsoft.jet.OLEDB.4.0;Data Source=conn.ConnectionString=CS&Server.MapPath(rsgl.mdb)打开连接 conn.Open 说明:连接字符串在等号(=)的左右不包含空格。在上例中,Connection对象的Open方法将引用连接字符串。,2.使用Recordset对象处理结果 建立了连接对象Connection,并打开了数据库连接后,就可以使用Recordset对象存取表中的记录。要使用Recordset对象处理结果,首先必须创建Recordset对象实例。下述代码创建Recordset对象实例,并打开R

26、ecordset对象:创建Recordset对象Set RS=Server.CreateObject(adodb.recordset)打开Recordset对象RS.Open 职工工资,conn,2,3,2 打开Recordset对象后,就可以读取、插入、删除和更新其中的记录。下面通过一个综合使用Recordset对象属性和方法的例子来说明记录集Recordset对象的应用。,【例11-1】综合使用Recordset对象的属性与方法,建立一个工资管理网页应用程序,如图11-1所示。工资管理网页应用程序包括6个asp文件,它们分别是:Main.asp:工资管理网页主框架,包括两个框架。上方框架为

27、控制菜单,下方框架为数据显示、操作区域。Menu.asp:上方框架的来源网页,用以控制各种数据操作。List1.asp:记录显示页面。List2.asp:记录修改页面,用以修改指定记录数据。,List3.asp:记录增加页面,用以增加新记录。List4.asp:记录删除页面,用以删除指定记录。(1)主框架网页 主框架网页Main.asp的代码如下:说明:下方框架的名称为“Bottom”,各个记录操作网页都将在此打开。,(2)控制菜单网页 控制菜单网页Menu.asp是上方框架的来源网页。其代码。说明:以超级链接作为控制菜单,前4个链接以不同的参数连接网页List1.asp,后3个链接分别连接3

28、个不同的网页文件。,(3)记录显示 记录显示网页List1.asp显示记录集Recordset对象的单条记录,其代码。说明:记录集Recordset对象的AbsolutePosition属性设置或返回当前记录号。,fields.count表示记录集中字段的个数;fields(i).name属性表示第i+1个字段的名称;fields(i).value属性则表示当前记录第i+1个字段的值。应及时使用Connection对象和Recordset对象的Close方法关闭数据库连接,并释放对象所占用的内存空间。,(4)记录修改 修改数据需要用到Recordset对象的Update方法。记录修改网页Lis

29、t2.asp以文本框的形式显示待修改的记录,提交按钮(确定修改)用以提交修改内容,其代码。,说明:当文本框中的内容改变时,事件代码自动计算“实发工资”。ShowPage过程同时包括记录数据的更新功能。(5)记录增加 记录增加页面List3.asp用以增加新记录,其中代码用到Recordset对象的AddNew方法。代码。,(6)记录删除 删除数据需要用到Recordset对象的Delete方法。记录删除网页List4.asp的代码。,11.3 上机练习 打开Recordset对象后,记录指针(也称“光标”)指向首记录。要读取其他的记录,需要用到Recordset对象的属性和Move方法。【练习11-1】打开数据库rsgl.mdb,将其中“职工工资”表记录分页列表显示,如图11-3所示。,图11-3 分页列表显示,说明:将文件以list5.asp为文件名存盘。Recordset对象的PageSize属性表示分页大小;PageCount表示页面数;AbsolutePage属性表示当前页号。代码中使用Recordset对象MoveNext方法,将指针移向下一条记录。代码显示。,【练习11-2】修改记录的网页。程序代码,运行结果。说明:将文件以list6.asp为文件名存盘。本练习综合了超级链接和提交按钮的使用。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号