1 / 95

ASP 访问数据库

ASP 访问数据库. 本节目录. ASP 访问数据库概述 ADO 组件介绍 ADO 的数据对象 Connection 对象 RecordSet 对象 Command 对象. 网站数据库化. 网站数据库化 将网站数据库化,就是使用 数据库 来管理整个网站。只要更新数据库的内容,网站的内容就会被自动更新。将网站数据库化的好处如下: ① 可以 自动更新网页 。采用数据库管理,只要更新数据库的数据,网页内容就会自动得到更新,过期的网页也可以被自动拿掉。

kyle-dennis
Download Presentation

ASP 访问数据库

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP访问数据库

  2. 本节目录 • ASP访问数据库概述 • ADO组件介绍 • ADO的数据对象 • Connection对象 • RecordSet对象 • Command对象

  3. 网站数据库化 • 网站数据库化 • 将网站数据库化,就是使用数据库来管理整个网站。只要更新数据库的内容,网站的内容就会被自动更新。将网站数据库化的好处如下: • ① 可以自动更新网页。采用数据库管理,只要更新数据库的数据,网页内容就会自动得到更新,过期的网页也可以被自动拿掉。 • ② 加强搜索功能。将网站的内容储存在数据库中,可以利用数据库提供的强大搜索功能,从多个方面搜寻网站的数据。

  4. 网站数据库化 • ③ 可以实现各种基于Web数据库的应用。使用者只要使用浏览器,就可以通过Internet或Intranet内部网络,存取Web数据库的数据。可以使用在学校教学、医院、商业、银行、股市、运输旅游等各种应用上。例如银行余额查询、在线购书、在线查询、在线预定机票、在线医院预约挂号、在线电话费查询、在线股市买卖交易、在线学校注册选课,以及在线择友等。

  5. 数据库的选择 • 大型站点中一般采用SQL Server、Oracle等数据库. • 对于小型站点,也可以用Access数据库。 • 读取Access数据库和读取SQL Server数据库基本上是一样的,如要改成读取SQL Server库,程序几乎不用改动

  6. 问题 • 如何将一个数据库中的表显示在网页上?

  7. 步骤 • 连接数据库(Connection对象) • 通过执行SQL语句将数据库中的一个表或某些记录读取到内存中(创建记录集) • 将该表中的字段输出到网页上

  8. 连接数据库的方法 • 通过ADO 技术 • ADO(ActiveX Data Object)是 ASP 内置的、用于访问Web数据库的ActiveX服务器组件,包含多种对象和集合供Web数据库应用的开发者使用。 • 作为一种既易于使用又可扩展的技术,ADO可以用于向网页添加数据库访问。

  9. ADO简介 ADO是一种允许用户与数据存储进行交互的组件,是一种数据库访问技术。它与我们的OLEDB和ODBC紧密相关。ADO调用先被送到OLEDB,然后再交由ODBC处理。ODBC根据所提供的参数(如数据库驱动、数据库名称)进行数据访问。

  10. ADO 组件对象简介 • ADO 组件主要提供了 7 种对象和 4 种集合供 Web应用程序的开发者使用,通过这些对象和集合,可以方便地建立与Web数据库的连接、执行 SQL 查询并处理查询得到的结果。 • 其中,Connection 对象、Command 对象和Recordset 对象是最基本也是最重要的对象。

  11. 数据库 Connection对象 ADO Command对象 Recordset对象 网页 ADO组件的作用示意图 轻松的实现实现数据库数据的查询、添加、删除、修改等功能,方便数据库的维护或网站的维护。

  12. 网页访问数据库的基本思路 • 建立数据库连接对象(connection对象),并连接数据库 • 设置数据表操作的SQL命令,选择connection对象或recordset对象来执行 • 确认数据表操作结果是否需要显示,如果要则输出recordset对象的各个字段

  13. Connection 对象 Connection 对象的常用方法 1.Open 方法 2.Execute 方法 3.Close 方法

  14. Connection.open方法 • <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Inetpub\wwwroot\address.mdb" %>

  15. ConnectionString 连接字符串 • ConnectionString 连接字符串是一系列用分号分隔的参数,用于定义诸如数据源提供程序和数据源位置等参数。 • 1. 常用 OLE DB 连接字符串 • 2. 常用 ODBC 连接字符串

  16. 连接数据库(2) • (2)基于ODBC,但是不用数据源的连接方式: • <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Inetpub\wwwroot\address.mdb" %> • 对于方式2,通常可以利用Server对象的MapPath方法将相对路径转换为物理路径, 因此最后一句可改写为: conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("address.mdb")

  17. 3)基于OLE DB的连接方式 • <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\asptemp\chapter8\address.mdb" %> • 方式3中也可以使用Server.MapPath方法将相对路径转化为物理路径 ,如下: conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("address.mdb")

  18. 获取OLEDB连接字符串的方法 • 新建一个.udl(通用数据链接文件)的文件

  19. Connection.close方法 • 当不再需要连接对象时,需要使用Close方法来关闭连接以释放系统资源 Conn.close Set conn=nothing • 关闭对象并非将它从内存中清除,以后仍可以用Open方法再次打开它,若要将对象从内存中完全清除,可将对象变量设置为Nothing

  20. Connection.execute方法 • Connection.execute方法可以将命令发布到数据源,这个命令可以是一条SQL命令,也可以是一个表名。 • 举例 • set rs=conn.execute("select * from lyb") • set rs=conn.execute("lyb") • 注意:如果前面有“set rs=”则括号不能省略,否则括号可省略。 • conn.execute "delete from lyb where id="&id

  21. 利用Connection对象执行数据存取 • 连接上数据库后,就可以应用connection对象的execute方法对数据库中的数据执行操作。 • set recordSet对象=connection对象.execute (SQL语句字符串) 或 • connection对象.execute(SQL语句字符串) 数据库记录查询 数据库记录的删除、修改、增添

  22. connection对象.execute 方法的number参数 • 在查询、删除、修改等操作中,有时希望知道connection对象.execute 方法影响了多少条记录,怎么办? 返回此次操作影响的记录条数 connection对象.executeSQL语句字符串,number <% strSQL=”Delete from users where name=‘李枚’” db.execute strSQL,number1 response.write “共删除”& number1 & “条记录” %>

  23. rs rs rs.bof=true rs rs.eof=true 记录集及指针的概念 • 通过connection对象conn的Execute方法执行查询SQL语句,得到一个虚拟的记录集,可建立RecordSet对象作为记录集的指针。 rs.moveNext, rs.moveProvious, rs.movefirst, rs.movelast, rs.move n。

  24. rs 获取记录集中的字段 • 假设此时记录集指针 rs 指向第一条记录, • 该记录的每个字段值用 rs(“字段名”)获取。rs(“字段名”)就是标识对应记录的某个字段的值。如: • rs(“id”)可以获取指定记录的编号 • rs(“author”)可以获取指定记录的作者名称

  25. 思 考 • 我们刚才读取了 rs 所指向的一条记录的数据,但是一般情况记录集中有多条记录,如何能把每条记录都读取出来呢? • 在读完一条记录后,用 rs 的 moveNext 方法,使 rs 移到下一条记录,再按照刚才所说的方法来读取每项数据。直到我们的 rs 移到了记录集的结尾,也就是rs.eof=true时。

  26. 一个记录集是由若干条记录组成的,记录又是由字段组成的,每个字段就是一个field对象,所有的field对象组成一个fields集合。 • Field对象是recordset对象的子对象,所以通过recordset对象的移动和recordset对象子对象field对象的引用方法可以读取每条记录每个字段的值。

  27. 要把记录显示在页面上,就需要用到SQL语言的Select语句。具体过程如下:要把记录显示在页面上,就需要用到SQL语言的Select语句。具体过程如下: • (1)首先利用Connection对象连接数据库。 • (2)其次利用Connection对象的Execute方法执行一条Select语句,该方法就会返回一个记录集对象(Recordset)。 • 所谓记录集,类似于一个数据库中的表,由若干列和若干行组成,可以看做一个虚拟的表。 • (3)在记录集中利用循环移动指针就可以依次读取所有的记录了。

  28. rs Recordset对象 的功能 RecordSet对象的概述 • 当我们对数据库进行操作时,特别是查询符合条件的数据记录时,往往要把查询到的记录显示出来。这时就需要设置一个Recordset对象来标记这个记录集。 数据库的增添、删除、修改 数据的查询和分页显示

  29. 创建RecordSet对象 方 法 一 :conn.Execute的方法 <% Dim conn,rs Set conn=Server.CreateObject("ADODB.Connection") conn.Open "Dbq=" & Server.Mappath("address.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}“ Set rs=conn.Execute(select * from users) %>

  30. 创建RecordSet对象 方 法 二 :Open方法 <% dim conn set conn=Server.CreateObject("ADODB.Connection") conn.open("Dbq=" & Server.Mappath("lyb.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}" ) dim rs set rs=Server.CreateObject("ADODB.Recordset") rs.open (“select * from lyb"),conn %>

  31. 建立Recordset对象 • 语法: • Set Recordset对象=Server.CreateObject ("ADODB.Recordset") • 一般情况下,应先建立connection对象,再来建立Recordset对象

  32. Recordset对象中常用属性

  33. Recordset常用方法

  34. Recordset对象的重要方法(2) • MoveFirst、MovePrevious、MoveNext、MoveLast、Move方法 • MoveFirst方法用于将记录指针移动到第1条记录。 • MovePrevious方法用于将记录指针向后(或向上)移动一条记录。 • MoveNext方法用于将记录指针向前(或向下)移动一条记录。 • MoveLast方法用于将指针移动到最后一条记录。 • Move方法用于将指针移动到指定的记录。语法为: • Recordset对象.Move number,start • 其中start表示指针移动的开始位置,如省略默认为当前指针位置;number表示从start设置的起始位置向前或向后移动number条记录

  35. rs.Fields的属性 • rs(3).Name = rs.Fields(3).Name = "数学"; • rs(4).Name="英语"; • 假设当前的记录指向第三条,那么 • rs(1).Value=rs("姓名")=rs(1)= "张敏" • rs(4).Value=rs(4)=rs("英语")=200

  36. (3)RecordCount属性 • 该属性用于返回记录集中的记录总数。例如下面语句将输出记录总数: <% Response.Write rs.RecordCount %> • (4)Bof、Eof属性 • 这两个属性用于判断当前记录指针是否指向记录集的开头或结尾,返回值为True或False。当指针指向开头(第一条记录之前)时,Bof属性的值为True;当指针指向结尾(最后一条记录之后)时,Eof属性的值为True。

  37. Recordset对象的重要方法(1) • Open、Close、Requery方法 • 这一组方法主要是关于Recordset对象本身的。其中Open方法在上一节已经详细讲解过,用于打开一个记录集。 • Close方法用于关闭记录集。例如: • <% rs.Close %> • Requery方法用于重新打开记录集,相当于先关闭再打开。例如: • <% rs.Requery %>

  38. Recordset对象的重要方法(3) • AddNew、Delete、Update、CancelUpdate方法 • 这一组方法用来添加、删除和更新记录。 • 添加记录时一般要同时用到AddNew方法和Update方法,例如: • <% • rs.AddNew • rs("strName")="李玫" • rs.Update • %> • 删除记录时比较简单,首先将指针移动到要删除的记录,然后利用Delete方法就可以删除当前记录,不过还要用Update方法更新数据库。 • CancelUpdate方法用来取消刚才添加、删除和更新记录的操作。

  39. (1)由于我们删除记录时不生成记录集,所以没有必要设置记录集rs。(1)由于我们删除记录时不生成记录集,所以没有必要设置记录集rs。 (2)SQL语句中用到了一个传递参数。 (3)在SQL语句中,如果连接的参数是数值型,则不要在参数两边加单引号,如果是字符则要加单引号,如果是日期型则加#

  40. 不带传递参数的SQL和带传递参数的SQL • sqlstr1=”select * from link where link_id=5” • sqlstr1=”select * from link where name=‘搜狐’” • sqlstr1=”select * from link where link_id=” & linked • sqlstr1=”select * from link where name=‘” & netName & ”’”

  41. Recordset对象的重要方法(4) • Find方法 • 该方法用来查找符合条件的单个记录,语法如下: • Recordset对象实例.Find criteria, skipRows, searchDirection, start • 下面来看两个常用的例子: • <% • rs.Find "intAge<20" '向前查找年龄小于20的人员 • rs.Find "intAge<20",0,-1 '向后查找年龄小于20的人员%>

  42. 建立Recordset对象的总结 • 一般只有在查询记录时才会需要建立Recordset对象。而插入、删除和修改记录时则不需要返回记录集,所以一般就利用Connection对象或Command对象的Execute方法就可以了。 • 关于记录集 • 记录集,好比内存中的虚拟数据表,保存了满足查找条件的所有记录。

  43. 插入、删除和修改记录

  44. 本节目录 • 插入、删除和修改记录的作用 • SQL语言复习 • 插入记录的方法 • 删除记录的方法 • 修改记录的方法

  45. 插入、删除和修改记录的作用 • 通过将记录集中的数据显示在网页上,实现了读取数据库中的内容到网页上 • 但是有时我们经常还需要向数据库中写入数据,或通过在网页修改数据库中数据,这时就需要用到插入、删除和修改记录了。

  46. SQL语言 • 查询语句 Select • 插入语句 INSERT INTO • 删除语句 DELETE • 修改语句UPDATE

  47. 1.查询(SELECT) • Select语句用于从数据库中获得一些信息,如从一个表中获得部分记录的部分字段内容,从多个表中组合形成一个新的记录集等 • SELECT 书名,书价 FROM 书目表 WHERE 类型=‘文学’AND 价格>25

  48. 2.插入(INSERT) • Insert语句用于向表中添加一个或多个记录。可以将一组值作为一个记录追加到表中,形式为: INSERT INTO 表名[(字段名表)] VALUES (值的列表) • 其中: 如果“值的列表”中包含了所有字段的值,则格式中字段名表可以省略。 “字段名表”和“值的列表”中各数据的类型必须保持一致,个数也要保持一致。

  49. 例如:在只包含姓名和年龄的学生表中插入一个姓名为“张三”,年龄为23的记录的形式如下:例如:在只包含姓名和年龄的学生表中插入一个姓名为“张三”,年龄为23的记录的形式如下: INSERT INTO 学生表VALUES(‘张三’,23) • 其中字符型常量“张三”用单引号括起来,数值型常量23不用定界符。如果学生表中还有其它字段,则上述语句执行时会产生错误。

  50. 3.删除(DELETE) • Delete语句可从表中删除满足一定条件的一个记录或一组记录。使用形式如下: DELETE FROM 表名WHERE 条件 • 其中,表名指出需要删除一个或多个记录的数据表名称。该命令一次可能删除多个记录。

More Related