动态网站设计与开发第五章1课件_第1页
动态网站设计与开发第五章1课件_第2页
动态网站设计与开发第五章1课件_第3页
动态网站设计与开发第五章1课件_第4页
动态网站设计与开发第五章1课件_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

动态网站设计与开发第五章5.3ADO组件之Connection对象Activex数据对象课程引入与回顾数据库的各种访问技术利用connection对象来与数据库建立连接,并进行简单的数据库操作目标利用Recordset对象实现添加、删除或更新记录操作利用Recordset对象实现数据记录的分页显示关于记录集保存了满足查找条件的所有记录。记录集的两个特殊位置:bof与eof(向前与向下移动、向后与向上移动)建立Recordset对象标准语法:SetRecordset对象实例=server.createobject(“ADODB.Recordset”)(Recordset对象实例名假设为rs)Rs.open[Source],[ActiveConnection],[CursorType],[LockType],[Options]参数说明SourceCommand对象名或SQL语句或数据表名ActiveConnectionConnection对象名或数据库连接字符串CursorTypeRecordset对象记录集中的指针类型(游标类型)—详见下表LockTypeRecordset对象的锁定类型—详见下表OptionsSource类型—详见下表CursorType:指针类型说明游标类型ADO常量描述仅向前游标adOpenForwardOnly0只允许向前移动(缺省)键盘游标adOpenKeySet1可看到其他用户所做的部分数据更改,不包括新增记录动态游标adOpenDynamic2可看到其他用户所做的所有数据更改静态游标adOpenStatic3提供记录集的静态副本。看不到其他人的更改。Adovbs.inc文件中包含着与ADO一起使用的常量定义清单,在安装ASP时就安装在服务器中了,一般会在WINDOWS安装目录下的ServicePack目录下。

锁定类型的进一步说明常数 说明adLockReadOnly缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法adLockPrssimistic当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。adLockOptimistic当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。adLockBatchOptimistic当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。Options:Source类型Options参数值说明adcmdunknown-1Source参数类型未知(缺省)Adcmdtext1Source参数为命令类型Adcmdtable2Source参数是一个表名adcmdstoreproc3Source参数为一个存储过程建立recordset对象具体方法(1)利用connection对象的execute方法来建立Dimdb,rsSetdb=server.createobject(“adodb.connection”)Db.open“dsn=addr”Setrs=db.execute(“select*fromusers”)说明:这种方法是最常用的方法。它没有明确建立Command对象,但是会建立一个隐含的Command对象。建立Recordset对象的具体方法(3)利用Command对象的Execute方法建立的另一种形式

Dimdb,cmd,rs

Setdb=Server.CreateObject("ADODB.Connection")

db.Open"Dsn=addr“Setcmd=Server.CreateObject("ADODB.Command")

cmd.ActiveConnection=db

cmd.CommandText="Select*Fromusers"

Setrs=Server.CreateObject("ADODB.Recordset")

rs.Opencmd说明:这种方法明确建立三个对象,功能最强大。recordset对象常见属性属性说明SourceCommand对象名或SQL语句或数据表名ActiveConnectionConnection对象名或数据库连接字符串CursorType指针类型(游标类型)LockType锁类型maxrecords控制从服务器取得的记录集的最大记录数目Pagesize数据分页显示时每一页的记录数Pagecount数据分页显示时数据页的总数absolutepage当前指针所在的数据页Absoluteposition当前指针所在的记录行BOF标志着记录集的开始,若当前记录位置在第一个记录前则值为TrueEOF标志着记录集的结束,若当前记录位置在最后一个记录后则值为TrueRecordCount返回记录集的记录总数关于记录指针及记录数的属性Recordcount(在指针类型为键盘指针或静态指针时可用)BofEof在记录集为空的情况下,bof与eof同时为真利用记录集的movenext方法可将指针指向下一条记录利用以下几条语句可达到对记录集进行遍历Dowhilenotrs.eof…..(对当前记录进行处理)Rs.movenextlooprecordset对象常见方法属性/方法说明open打开记录集close关闭记录集MoveNext移至当前目录的下一条记录MovePrevious移至当前目录的上一条记录Move将记录指针移到指定位置MoveFirst将记录指针移到第一条记录处MoveLast将记录指针移到最后一条记录处Addnew在记录集尾添加一条记录Delete删除当前记录Update更新数据库数据Cancelupdate取消数据更新Getrows从记录集取得多行数据Resync与数据库服务器同步更新利用Recordset对象查询记录<%Dimdb,rs,strSqlSetdb=Server.CreateObject("ADODB.Connection")db.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("address.mdb")Setrs=Server.CreateObject("ADODB.Recordset")strSql="Select*Fromusers"rs.OpenstrSql,dbDoWhileNotrs.Eof Response.Writers(“name”)&vbTab&rs(“age”)&“<br>” rs.MoveNextLooprs.CloseSetrs=nothingdb.CloseSetdb=nothing%>使用表格来显示记录<%Setconn=Server.CreateObject("ADODB.Connection")conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("Sample.mdb")Setrs=conn.Execute("成绩单")%><HTML><bodybgcolor="beige"><center><tableborder="4"bordercolor="orange"><TRbgcolor="orange"align="middle"><%Fori=0tors.Fields.Count-1Response.Write"<TD><fontcolor=white><b>"&rs(i).Name&"</b></font></TD>"Next%></TR><%rs.MoveFirst '将目前的数据记录移到第一项WhileNotrs.EOF '判断是否过了最后一项Row="<TRalign=middle>"Fori=0tors.Fields.Count-1Row=Row&"<TD>"&rs(i)&"</TD>"NextResponse.WriteRow&"</TR>"rs.MoveNext '移到下一项Wend%></TABLE></CENTER></BODY></HTML>数据分页显示<% Dimdb,rs,strSql Setdb=Server.CreateObject("ADODB.Connection") db.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("address.mdb") Setrs=Server.CreateObject("ADODB.Recordset") strSql="Select*Fromusers" rs.OpenstrSql,db,1'注意参数设置 IfNotrs.BofAndNotrs.EofThen Dimpage_no IfRequest.QueryString("page_no")=""Then page_no=1 Else page_no=Cint(Request.QueryString("page_no"))'用Cint将字符串变为整数 EndIf rs.PageSize=2'设置每页2条记录 rs.AbsolutePage=page_no'设置当前显示第几页 DimI'该变量用来控制显示当前页记录 I=rs.PageSize DoWhileNotrs.EofAndI>0'循环直到当前页结束或记录集结尾 I=I-1 Response.Writers("name")&"<br>"'输出姓名字段值 rs.MoveNext Loop Response.Write"请选择数据页:" ForI=1Tors.PageCount IfI=page_noThen'如是当前页,就不加超链接 Response.WriteI&" " Else'如不是当前页,就加上超链接 Response.Write"<ahref=‘9-8.asp?page_no="&I&"'>"&I&"</a> " EndIf Next Else Response.Write"该记录集为空" EndIf %>利用Recordset对象更新数据库<% Dimdb,rs,strSql '建立Connection对象 Setdb=Server.CreateObject("ADODB.Connection") db.Open"Dsn=addr"'这里利用数据源连接 '建立Recordset对象 Setrs=Server.CreateObject("ADODB.Recordset") strSql="Select*Fromusers" rs.OpenstrSql,db,0,2'注意参数,锁定类型为可以修改 '添加记录 rs.AddNew rs("name")="李玫" rs("tel")="88888888" rs("age")=23 rs.Update '更新记录(修改李玫的电话号码) rs("tel")="66666666" rs.Update '删除记录,删除李玫的记录 rs.Delete rs.Update '省略关闭对象语句 %>Fields集合的属性和方法属性Count返回记录集中字段个数方法Item返回一个字段对象,语法如下:SetField对象=Recordset对象.Fields.Item(字段名或字段索引值)也可以简写为

SetField对象=Recordset对象(字段名或字段索引值)输出字段值的几种方法Response.Writers("name")

Response.Writers.Fields("name")

Response.Writers.Fields("name").Value

Response.Writers.Fields.Item("name").Value

Response.Writers(1)

Response.Writers.Fields(1)

Response.Writers.Fields(1).Value

Response.Writers.Fields.Item(1).Value

示例6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论