asp访问sqlserver数据库

上传人:E**** 文档编号:118180716 上传时间:2019-12-11 格式:PPT 页数:52 大小:661KB
返回 下载 相关 举报
asp访问sqlserver数据库_第1页
第1页 / 共52页
asp访问sqlserver数据库_第2页
第2页 / 共52页
asp访问sqlserver数据库_第3页
第3页 / 共52页
asp访问sqlserver数据库_第4页
第4页 / 共52页
asp访问sqlserver数据库_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《asp访问sqlserver数据库》由会员分享,可在线阅读,更多相关《asp访问sqlserver数据库(52页珍藏版)》请在金锄头文库上搜索。

1、第十章 Asp访问SQL Server数据库,在ASP中,用来存取数据库的对象统称为ADO(ActiveX Data Object),主要含有Connection、Recordset和Command三种对象。 Connection对象:负责连接、打开数据库 Recordset对象:存取数据库的内容 Command对象:对数据库下达行动查询指令,10-1 存取数据库的准备工作,要让ADO对象能够存取数据库,最重要的东西就是ODBC驱动程序。 ODBC:Open DataBase Connectivity 对任何一种数据库来说,必须具备其对应的ODBC驱动程序,ADO对象才能够进行存取。,应用程序

2、,应用程序,应用程序,ADO对象,Dbase驱动程序,Access驱动程序,SQL Server驱动程序,Dbase数据库,Access数据库,SQL Server数据库,1.ODBC数据源管理器,控制面板管理工具ODBC数据源驱动程序,2.Connection对象的建立与数据库的连接,建立Connection对象 set conn=server.createobject(“adodb.connection“) conn.Open “driver=SQL Server;server=(local);uid=sa;pwd=;database=sample“,3.访问数据库,建立Recordset

3、对象 set rs=server.createobject(“adodb.recordset“) 打开数据表,参数二为Connection对象 rs.open “成绩单“,conn,cursor,locktype cursor为游标参数,实际应用中的值为1、2、3,cursortype,0 :adOpenForwardOnly,缺省值,启动一个只能向前移动的游标(Forward Only)。 1:adOpenKeyset,启动一个Keyset类型的游标。用户对记录做的修改将反映到记录集中,但用户增加或删除记录不会反映到记录集中。支持分页 2:adOpenDynamic,启动一个Dynamic类

4、型的游标。在打开数据表时,只是打开一部分记录,随着程序的执行,再打开后面的记录; 3:adOpenStatic,启动一个Static类型的游标。具有定位功能的,一次打开全部记录,所占的内存较多,浪费系统资源,打开数据表时间也相对较长,locktype,1:adLockReadOnly,缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 2:adLockPrssimistic,当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 3:adLockOptimistic,当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对

5、数据进行增、删、改的操作。,5.数据库连接的关闭,在对数据库所有的操作完毕后,应当及时关闭connection对象,释放资源 Conn.close Set conn=nothing Set rs=nothing,10-2 使用Recordset对象读取数据库,读取数据表表头 读取数据内容 改变当前数据记录的方法 利用字段名称读取数据,例子:first00.asp 改进:,读取数据表表头,第N个字段的表头为rs(N).Name(N从0开始算起) “ & rs(i).Name Next % 例:first01.asp,在不知道表的字段个数情况下,如何正确的列出所有字段的表头呢? rs.fields

6、.count:读取字段个数 For i=0 to rs.fields.count-1 例:First02.asp,读取数据内容,当打开某一个数据表时,当前数据记录位于第一项的位置,此时只能读取这个数据记录的数据,数据表示方法如下图,rs(0)表示当前数据记录的第一项数据,第N项数据为rs(N),N从0开始,读取数据的方法: “ & rs(i).Name & “ = “ & rs(i) Next % 说明:(1)rs(i).Name:读取第i栏的字段表头(i从0开始) (2)rs(i):读取当前数据记录第i栏的数据内容(i从0开始) (3)rs.fields.count:读取字段的数目 例:fi

7、rst03.asp,改变当前数据记录的方法,MoveNext方法:将当前数据记录移到下一项。 MovePrevious:移到上一项 MoveFirst:移到第一项 MoveLast:移到最后一项 BOF属性:若为True,表示当前数据记录指针超过了第一项数据记录 EOF:若为True,表示当前数据记录指针超过了最后一项数据记录 例子:Firstdb.asp, “ & rs(i).Name & “ Next % “ For i=0 to rs.Fields.Count-1 Row = Row & “ & rs(i) & “ Next Response.Write Row & “ rs.MoveN

8、ext 移到下一项 Wend % ,使用字段名称读取数据,rs(“字段名称”),练习,练习1:写一网页,打开sample.mdb数据库的“股票行情表”,要求只列出“成交量”大于20000的数据记录。 练习2:写一网页,打开sample.mdb数据库的“成绩单”数据表,除了显示“学号、姓名、语文、数学、英文”字段外,还要计算“语文、数学、英文”三科的总分数线,显示成“总成绩字段”。,10-3 定位式的数据读取,要读取第100项数据,怎么办?设置AbsolutePosition属性:rs.absoluteposition=100 定位功能实现:cursor类型设为3 3:adOpenStatic

9、,启动一个static类型的游标,具有定位功能的,一次打开全部记录,所占的内存较多,浪费系统资源,打开数据表时间也相对较长,具备分页浏览功能的网页,Pagev1.asp:分页的技巧 Pagev2.asp:在地址栏中输入页次 Pagev3.asp:页次的浏览 Pagev4.asp:增加“输入页次”字段,分页的几个重要参数,rs.pagesize:每页显示的记录数 Rs.pagecount:总页数 Rs.absolutepage:某一页,Pagev1.asp,显示记录的某一页 Rs.pagesize=10 ShowOnePage rs, 1,Sub ShowOnePage( rs, Page )

10、Response.Write “ Response.Write “ Response.Write “编号“ For i=0 to rs.Fields.Count-1 Response.Write “ & rs(i).Name & “ Next Response.Write “ rs.AbsolutePage = Page For iPage = 1 To rs.PageSize Response.Write “ RecNo = (Page - 1) * rs.PageSize + iPage Response.Write “ & RecNo & “ For i=0 to rs.Fields.C

11、ount-1 Response.WRITE “ & rs(i) & “ Next Response.Write “ rs.MoveNext If rs.EOF Then Exit For Next Response.Write “ End Sub,Pagev2.asp,可输入页码的需要对获取的页数page转换 Page=request(“page”) If page” then Page = cint( “Page“) If Page rs.PageCount Then Page = rs.PageCount Else Page=1 End if,Pagev3.asp,对“上、下页”的显示方法

12、 Myself = Request.ServerVariables(“PATH_INFO“) 1 Then 如果不是位于第一页% ?Page=1第一页 ?Page=上一页 rs.PageCount Then 如果不是位于最后一页 % ?Page=下一页 ?Page=最后一页 ,Pagev4.asp,带有输入文本框的分页 Method=“GET” ,10-4 数据记录的增添、删除与修改,删除数据记录:首先要将准备删除的数据记录设置成当前数据记录,然后调用rs.delete方法。例子:delete.asp 修改数据记录:修改以后只是把数据写到了缓冲区,必须调用Update方法或改变当前数据记录的位

13、置才真正写入数据库。 rs.(“字段名“)=新的字段值 rs.update 例子:Modify.asp 增添数据记录:rs.addnew。 rs.addnew rs(“字段名“)=字段值 rs.update 例子:addnew.asp,10-5 可以进行数据筛选与排序的Select指令,Firstdb.asp替换成select.asp。结果不变。 SQL是“Structured Query Language”结构化查询语言的缩写,是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具。 查询是SQL语言的核心,而用于表达SQL查询的Select语句则是功能最强也最为复杂的SQL语句。

14、它从数据库中检索数据,并将查询结果提供给用户。 使用testsel.asp测试select指令,基本句型一:Select 字段列表 From 数据表,Select * from 成绩单 注:其中*表示“成绩单”数据表所有字段所构成的列表,所以上面的指令也等于: Select 学号,姓名,语文,英文,数学 from 成绩单 注:凡是数据表中的字段都可以成为“字段列表”的一员。 字段的顺序可以自定义,不必与数据表中的字段顺序相同。 Select 字段名1 As 别名1,字段名2 As 别名2 from 成绩单 Select 字段名1,字段名2,字段名1+字段名2 as 字段名3 from 成绩单,

15、Select * from 成绩单 where 数学60 注:从成绩单中取出数学不及格的同学 Select * from 成绩单 where 语文=0 or 数学=0 or 英文=0 注:取出语文、英文、数学任何一门为0分的学生。,基本句型二:Select Fromwhere 条件式,Where 条件表达式,关系运算符:、=、!=(不等于,或者用“”表示) 逻辑运算符:And、OR、NOT 特殊运算符: :通配符,表示零或多个字符 _:通配符,表示任何一个字符 Between:定义一个区间范围 IS NULL:测试字段值是否为空值 Like:字符串匹配操作 IN:检查一个字段值是否属于一组之中

16、 Exists:检查一个字段值是否有值,字符串数据 下面2种写法都正确 Select * from 成绩单 where 姓名=“叶小毛” Select * from 成绩单 where 姓名=叶小毛 通配符 %、_ %:代表0N个字符 Select * from 成绩单 where 姓名 like 王% 注:查找所有姓王的同学的数据记录。 Select * from 成绩单 where 姓名 like %小% 注:查找姓名中含有“小”的数据记录。 _:代表一个字符 select * from 成绩单 where 姓名 like _小% 选取姓名中第二个字为“小”字的同学,Between and Select * from 学生表 where 年龄 between 18 and 20 注:列出年龄在18-20之间的学生 思考:列出年龄不在1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号