




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章Asp访问SQLServer数据库,在ASP中,用来存取数据库的对象统称为ADO(ActiveXDataObject),主要含有Connection、Recordset和Command三种对象。Connection对象:负责连接、打开数据库Recordset对象:存取数据库的内容Command对象:对数据库下达行动查询指令,10-1存取数据库的准备工作,要让ADO对象能够存取数据库,最重要的东西就是ODBC驱动程序。ODBC:OpenDataBaseConnectivity对任何一种数据库来说,必须具备其对应的ODBC驱动程序,ADO对象才能够进行存取。,应用程序,应用程序,应用程序,ADO对象,Dbase驱动程序,Access驱动程序,SQLServer驱动程序,Dbase数据库,Access数据库,SQLServer数据库,1.ODBC数据源管理器,控制面板管理工具ODBC数据源驱动程序,2.Connection对象的建立与数据库的连接,建立Connection对象setconn=server.createobject(adodb.connection)conn.Opendriver=SQLServer;server=(local);uid=sa;pwd=;database=sample,3.访问数据库,建立Recordset对象setrs=server.createobject(adodb.recordset)打开数据表,参数二为Connection对象rs.open成绩单,conn,cursor,locktypecursor为游标参数,实际应用中的值为1、2、3,cursortype,0:adOpenForwardOnly,缺省值,启动一个只能向前移动的游标(ForwardOnly)。1:adOpenKeyset,启动一个Keyset类型的游标。用户对记录做的修改将反映到记录集中,但用户增加或删除记录不会反映到记录集中。支持分页2:adOpenDynamic,启动一个Dynamic类型的游标。在打开数据表时,只是打开一部分记录,随着程序的执行,再打开后面的记录;3:adOpenStatic,启动一个Static类型的游标。具有定位功能的,一次打开全部记录,所占的内存较多,浪费系统资源,打开数据表时间也相对较长,locktype,1:adLockReadOnly,缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法2:adLockPrssimistic,当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。3:adLockOptimistic,当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。,5.数据库连接的关闭,在对数据库所有的操作完毕后,应当及时关闭connection对象,释放资源Conn.closeSetconn=nothingSetrs=nothing,10-2使用Recordset对象读取数据库,读取数据表表头读取数据内容改变当前数据记录的方法利用字段名称读取数据,例子:first00.asp改进:,读取数据表表头,第N个字段的表头为rs(N).Name(N从0开始算起)&rs(i).NameNext%例:first01.asp,在不知道表的字段个数情况下,如何正确的列出所有字段的表头呢?rs.fields.count:读取字段个数Fori=0tors.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:读取字段的数目例:first03.asp,改变当前数据记录的方法,MoveNext方法:将当前数据记录移到下一项。MovePrevious:移到上一项MoveFirst:移到第一项MoveLast:移到最后一项BOF属性:若为True,表示当前数据记录指针超过了第一项数据记录EOF:若为True,表示当前数据记录指针超过了最后一项数据记录例子:Firstdb.asp,&rs(i).Name&Next%Fori=0tors.Fields.Count-1Row=Row&rs(i)&NextResponse.WriteRow&rs.MoveNext移到下一项Wend%,使用字段名称读取数据,rs(“字段名称”),练习,练习1:写一网页,打开sample.mdb数据库的“股票行情表”,要求只列出“成交量”大于20000的数据记录。练习2:写一网页,打开sample.mdb数据库的“成绩单”数据表,除了显示“学号、姓名、语文、数学、英文”字段外,还要计算“语文、数学、英文”三科的总分数线,显示成“总成绩字段”。,10-3定位式的数据读取,要读取第100项数据,怎么办?设置AbsolutePosition属性:rs.absoluteposition=100定位功能实现:cursor类型设为33:adOpenStatic,启动一个static类型的游标,具有定位功能的,一次打开全部记录,所占的内存较多,浪费系统资源,打开数据表时间也相对较长,具备分页浏览功能的网页,Pagev1.asp:分页的技巧Pagev2.asp:在地址栏中输入页次Pagev3.asp:页次的浏览Pagev4.asp:增加“输入页次”字段,分页的几个重要参数,rs.pagesize:每页显示的记录数Rs.pagecount:总页数Rs.absolutepage:某一页,Pagev1.asp,显示记录的某一页Rs.pagesize=10ShowOnePagers,1,SubShowOnePage(rs,Page)Response.WriteResponse.WriteResponse.Write编号Fori=0tors.Fields.Count-1Response.Write&rs(i).Name&NextResponse.Writers.AbsolutePage=PageForiPage=1Tors.PageSizeResponse.WriteRecNo=(Page-1)*rs.PageSize+iPageResponse.Write&RecNo&Fori=0tors.Fields.Count-1Response.WRITE&rs(i)&NextResponse.Writers.MoveNextIfrs.EOFThenExitForNextResponse.WriteEndSub,Pagev2.asp,可输入页码的需要对获取的页数page转换Page=request(“page”)Ifpage”thenPage=cint(Page)IfPagers.PageCountThenPage=rs.PageCountElsePage=1Endif,Pagev3.asp,对“上、下页”的显示方法Myself=Request.ServerVariables(PATH_INFO)1Then如果不是位于第一页%?Page=1第一页?Page=上一页rs.PageCountThen如果不是位于最后一页%?Page=下一页?Page=最后一页,Pagev4.asp,带有输入文本框的分页Method=“GET”,10-4数据记录的增添、删除与修改,删除数据记录:首先要将准备删除的数据记录设置成当前数据记录,然后调用rs.delete方法。例子:delete.asp修改数据记录:修改以后只是把数据写到了缓冲区,必须调用Update方法或改变当前数据记录的位置才真正写入数据库。rs.(字段名)=新的字段值rs.update例子:Modify.asp增添数据记录:rs.addnew。rs.addnewrs(字段名)=字段值rs.update例子:addnew.asp,10-5可以进行数据筛选与排序的Select指令,Firstdb.asp替换成select.asp。结果不变。SQL是“StructuredQueryLanguage”结构化查询语言的缩写,是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具。查询是SQL语言的核心,而用于表达SQL查询的Select语句则是功能最强也最为复杂的SQL语句。它从数据库中检索数据,并将查询结果提供给用户。使用testsel.asp测试select指令,基本句型一:Select字段列表From数据表,Select*from成绩单注:其中*表示“成绩单”数据表所有字段所构成的列表,所以上面的指令也等于:Select学号,姓名,语文,英文,数学from成绩单注:凡是数据表中的字段都可以成为“字段列表”的一员。字段的顺序可以自定义,不必与数据表中的字段顺序相同。Select字段名1As别名1,字段名2As别名2from成绩单Select字段名1,字段名2,字段名1+字段名2as字段名3from成绩单,Select*from成绩单where数学=、!=(不等于,或者用“”表示)逻辑运算符:And、OR、NOT特殊运算符:通配符,表示零或多个字符_:通配符,表示任何一个字符Between:定义一个区间范围ISNULL:测试字段值是否为空值Like:字符串匹配操作IN:检查一个字段值是否属于一组之中Exists:检查一个字段值是否有值,字符串数据下面2种写法都正确Select*from成绩单where姓名=“叶小毛”Select*from成绩单where姓名=叶小毛通配符%、_%:代表0N个字符Select*from成绩单where姓名like王%注:查找所有姓王的同学的数据记录。Select*from成绩单where姓名like%小%注:查找姓名中含有“小”的数据记录。_:代表一个字符select*from成绩单where姓名like_小%选取姓名中第二个字为“小”字的同学,BetweenandSelect*from学生表where年龄between18and20注:列出年龄在18-20之间的学生思考:列出年龄不在18-20之间的学生?ISNULLSelect课程名from课程表where先修课ISNULL注:列出没有先修课的课程名INSelect学号,姓名,性别,院系from学生表where院系IN(计算机,国际贸易)注:列出计算机系和国际贸易系学生的学号、姓名、性别、院系如何列出不是电子系,也不是会计系的学生记录?,DISTINCT的作用:避免重复的记录如:SelectDistinct教师名from授课表,Select*from成绩单orderby语文注:orderby默认的排序方式是由小到大。下面将成绩单中的数据按语文成绩由高到低取出:Select*from成绩单orderby语文descSelect*from成绩单where语文60orderby语文注:orderby可以和Where条件式结合,此时,orderby必须放在where条件式的后面。,基本句型三:SelectFromorderby字段列表,级联排序:按顺序列出字段的清单,字段之间用逗号隔开Select入学年份,学号,姓名from学生表orderby入学年份desc,学号,在程序中组合条件式,以上所举的都是“常数”例子,如果比较的数据是“变量”,那么如何做呢?V=200SQL=“select*from股票行情表where收盘价V”setrs=server.createobject(“adodb.recordset”)rs.openSQL,conn,3,2结果是错误的,因为V对程序而言是一个变量,但是对于数据库而言,却是一个不认识的东西。所以必须把V输出为常数,然后串在条件式中,才是正确的。,对于数字例子:var1.aspSQL=“select*from股票行情表where收盘价”&V对于字符串例子:var2.aspSQL=“select*from股票行情表where股票代号=”&V&”对于日期时间例子:var3.aspSQL=“select*from买卖记录where买卖日期=#”&V&”#”,SQL的集合函数,Count:统计MIN:求最小值MAX:求最大值AVG:求平均值SUM:求总和,COUNT,用作计数器,统计满足条件的记录数Selectcount(*)as个数from学生表where性别=女and年龄=19注:统计19岁以上的女同学人数练习:列出授课表中有多少位教师Selectcount(Distinct教师名)as教师人数from授课表注意:与distinct合用,MAX和MIN,例:找出年龄最大和最小的学生年龄SelectMax(年龄)as最大年龄,Min(年龄)as最小年龄from学生表例:查询选修“C801”课程的学生最高分SelectMax(成绩)as最高分from成绩表where课程号=C801,AVG函数与SUM函数,例:求出所有学生的平均年龄SelectAVG(年龄)as平均年龄from学生表例:列出所有学生的年龄总和SelectSUM(年龄)as年龄总和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 村级安全员考试题及答案
- 产科医师考试题库及答案
- 中国新质生产力发展白皮书
- 大学生辩论赛策划方案
- 新质生产力的研究结论
- 税收政策如何促进新质生产力发展
- 新质生产力:提出背景与意义
- 新质生产力:标杆企业解析
- 新质生产力:未来工作岗位新图景
- 新质生产力企业认知框架
- 脚手架废弃物的分类与处理
- 河北建投集团招聘笔试题库2025
- (高清版)DB33∕T 715-2018 公路泡沫沥青冷再生路面设计与施工技术规范
- 托育园管理制度
- 2025年人教版小学四年级数学上册全册单元检测试卷(全套版)
- 铁塔拆除施工方案
- DB3714-T 0010-2022 园林绿化养护管理规范
- 小学生学习习惯养成教育课件
- 儿童用药安全科普知识
- 光伏发电设备检修维护(技师)职业技能鉴定备考试题库(含答案)
- 水行政处罚培训课件
评论
0/150
提交评论