Presentation is loading. Please wait.

Presentation is loading. Please wait.

第八讲 第8章数据库连接与查询(2).

Similar presentations


Presentation on theme: "第八讲 第8章数据库连接与查询(2)."— Presentation transcript:

1 第八讲 第8章数据库连接与查询(2)

2 四.查询数据库 在ADO中,Recordset对象是专门用来处理数据库操作的对象的。一个Recordset对象代表一个执行过的command对象所返回的完整记录集合。(可以简单理解为:SQL语句返回的多个记录的集合) 动态网页制作

3 四.查询数据库 记录集的定义 ①创建: <%dim rs
set rs=server.createobject(“adodb.recordset”)%> ②使用open或close方法打开或关闭记录集对象 <% rs.open “select * from db”,cn ………… rs.close set rs=nothing cn.close set cn=nothing %> 动态网页制作

4 四.查询数据库 ③记录集对象的Fields集合 Fields集合包含记录集中每一个字段的Fields对象。
通过该集合可以访问记录集对象的某一字段值,相 当于访问表格中的某一个单元格。Fields集合是记 录集对象的默认集合,该集合的方法有: rs.fields(“ID”).value 或 rs(“ID”).value rs.fields(“0”).value 或 rs(“0”).value “0”代表什么意思,如果是“1”呢? value是默认属性,可以省略 rs.fields(“ID”) 、rs(“ID”) rs.fields(“0”)、rs(“0”) 动态网页制作

5 四.查询数据库 记录集Open方法的参数 Rs.open[Source],[ActiveConnection],
[CursorType],[LockType],[Options] ①Source:指定一个SQL语句 ②ActiveConnection:指定一个打开的数据连接对象 ③CursorType:指定光标类型 ④LockType:指定锁定类型 ⑤Option:指定选项类型 可以只设定source和activeconnection参数 动态网页制作

6 四.查询数据库 当打开一个记录集时,如果这个记录集不为空, 则当前指针指向第一条记录。如果想要引用其它记
录,这时必须使用光标,光标意为指向某一条记录。 ① Recordset使用一系列方法来移动光标: movenext、moveprevious、movefirst、movelast ② 提供了两个属性来表示光标的特殊位置(其它一些属性可以参考书本) BOF:表示光标在第一条记录之前 EOF:表示光标在最后一条记录之后 动态网页制作

7 四.查询数据库 在读取数据之前,应适当使用BOF和EOF来判断 当前位置,不然会导致出错,如: <%
If not rs.eof then rs.movenext End if If not rs.bof then rs.previous %> 动态网页制作

8 四.查询数据库 光标类型 但是Recordset的方法和属性要根据打开记录集时选用 的光标类型来决定是否可以在这个要打开的记录集对象
使用,也就是说根据open方法选用的光标类型,决定了 记录集对象的那些方法和属性可以应用在这个打开的记 录集对象上。 动态网页制作

9 四.查询数据库 锁定类型 防止修改数据时出现数据不一致选用的策略 动态网页制作

10 四.查询数据库 综合例子: <% Dim cn,rs
Set cn=server.CreateObject("ADODB.Connection") Cn.Open "DSN=test;uid=sa;pwd=sa" Set rs=server.createobject(“adodb.recordset”) Rs.Open “select * from db”,cn,1,1 ……… Rs.close Set rs=nothing Cn.close Set cn=nothing %> 注意,直接读取到的 数据只是一条数据, 需要用循环输出所有 数据 一般组合为: 1,1或1,3 3,1或3,3 动态网页制作

11 五.记录集的高级操作 *8.5.1 书签bookmark *8.5.2 过滤filter *8.5.3 查找find
时间充足的可以去了解一下,较少使用 动态网页制作

12 五.记录集的高级操作 要使用这些属性,注意前提条件 4.分页处理 AbsolutePage:当前记录在总页面中的页数编号
AbsolutePosition:绝对位置 PageCount:数据存在的页数 pageSize:每页的记录数 RecordCount:统计记录集的记录总数 要使用这些属性,注意前提条件 动态网页制作

13 Part4:查看模块 1.进行循环输出代码 例子5-数据库连接与记录集\sample1 ①output.asp ②output2.asp
区别是什么?如果要输入1、2…等编号怎么 办?注意ID自动编号不一定是从1开始,也不一 定连续 动态网页制作

14 Part4:查看模块 2.新闻发布系统的查看功能 新闻列表页 多栏目新闻列表页 查看具体某一新闻 搜索新闻
注意news里面的数据表,为什么栏目也要单独出来 一个数据表? 动态网页制作

15 Part4:查看模块 新闻列表页:循环输出新闻(暂时不考虑分页) index0.asp ①代码类似output2.asp
②切片位置,在单元格可以适当嵌入表格,以此 保证排版的美观;样式表进行控制。 ③细节问题:每个标题前加上小图标… 怎么加呢? 动态网页制作

16 Part4:查看模块 多栏目新闻列表页 ①index.asp ②index1.asp ③index2.asp
某一栏目位置要输出到具体的位置,多记录集 ④index3.asp ①② ③每个栏目显示的新闻数目过多导致版面变形所有进行数目控制。可使用top。(你还想到那种方法?) 动态网页制作

17 Part4:查看模块 查看具体某一新闻 ①index4.asp:具有链接的新闻标题 动态网页制作

18 Part4:查看模块 <%if rs1.eof then % >
<tr> <td>没有记录</td></tr> <% else do while not rs1.eof %> <tr> <td><a href=content.asp?varname=<%=rs1("id")%>> <%= rs1("news_title") %></a></td> <td><%= rs1("news_author") %></td> </tr> rs1.movenext loop end if %> 为什么这里是传递数据库的ID字段 而不是其它的字段?这里如果使用 &的话要怎么处理? 动态网页制作

19 Part4:查看模块 ②content.asp 通过request.querystring读出传递过来的ID
信息,然后通过SQL语句查询出符合该ID值的新闻,然后进行输出 动态网页制作

20 Thank You !


Download ppt "第八讲 第8章数据库连接与查询(2)."

Similar presentations


Ads by Google