ASP数据库编程ASP存取数据库.ppt_第1页
ASP数据库编程ASP存取数据库.ppt_第2页
ASP数据库编程ASP存取数据库.ppt_第3页
ASP数据库编程ASP存取数据库.ppt_第4页
ASP数据库编程ASP存取数据库.ppt_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

第6章 ASP数据库编程,ASP存取数据库,学习连接数据库 实现查询、添加、删除和修改功能 了解ADO的几大对象及相互关系 学习各种事务处理和分页显示数据 学习连接SQL Server数据库的语句。,目的与要求,熟练掌握连接数据库的两种方式 利用Select语句查询记录、Insert语句添加、Delete语句删除、Update语句修改记录 了解ADO的几大内部对象:Connection对象、Recordset对象、Command对象的概念和相互关系 会使用事务处理、会分页显示,目的与要求(续),连接SQL Server数据库的语句 了解ADO的几大内部对象:Connection对象、Recordset对象、Command对象的概念和相互关系 会使用事务处理、会分页显示 连接SQL Server数据库的语句,重点难点,数据库连接和SQL语句的写法 利用execute方法和sql语句实现查询、添加、修改、删除 利用Connection对象、Recordset对象、Command对象实现数据库的深入操作,如分页显示等(难点),ASP内部组件概述,数据库存取组件简介: 数据库存取组件是使用ADO技术存取数据库的一种ASP内置组件,是ASP内置组件中最重要的和使用最多的一个组件。 ADO包括三个主要对象是:Connection、Command和Recordset 以下将以网络导航为例讲解 连接数据库、查询记录、添加记录、删除记录、修改记录,利用数据库存取组件存取数据库,数据库准备,在Access中建立数据库wwwlink.mdb,存放在C:inetpubwwwroot目录下,如图,连接数据库,连接数据库,要用到Connection对象,具体连接方法有两种: 第一种:利用数据源连接 特点:连接简单,但需要在服务器设置数据源 假设配置的数据源名字为wlink,则代码如下,连接数据库,不用数据源的连接方法 优点:方便在机器之间移植代码 代码举例(假设数据库与页面在同一目录下):,连接数据库,对于第二种方法,还可采用Server对象的Mappath方法,修改为:,利用select语句查询记录,查询时用Connection对象的Execute方法打开一个记录集 然后在记录集中移动记录指针依次显示所有记录 下面建立一个Connection对象实例db,dim strsql,rs strsql=“select * from link order by link_id desc“ 按降序排列 set rs=db.Execute(strsql),利用select语句查询记录(续),建立Recordset对象实例rs,set db=Server.Createobject(“ADODB.Connection“) db.Open “DBQ=“,利用insert语句添加记录,添加记录,利用Connection对象的Execute方法,不必返回记录集。 连接数据库,建立一个Connection对象实例db,varName=Request(“name“) varURL=Request(“URL“) varIntro=Request(“intro“),利用insert语句添加记录(续),获取上个页面的插入信息,StrSql=“insert into link(name,URL, intro,”&_ ”submit_date) values(“ &varName & “,“ &_ varURL & “,“ &_ varIntro & “,“ & Date() & “)“,db.execute(strSql),利用insert语句添加记录(续),插入Sql语句的写法 利用Execute方法,添加记录,利用Delete删除记录,删除记录,利用Connection对象的Execute方法,不必返回记录集 连上数据库,建立一个Connection对象实例db,set db=Server.Createobject(“ADODB.Connection“) db.Open “DBQ=“,varLink_id=Request.QueryString(“link_id“),strSql=“delete from link where link_id=“ & varLink_id,利用Delete删除记录(续),利用Execute方法,删除记录 传过来的要删除的记录的记录编号 删除SQL语句的写法,db.Execute(strSql),varLink_id=Request.QueryString(“link_id“),利用Update修改语句,修改记录,利用Connection对象的Execute方法。 获取传入的要修改的Link_ID,set db=Server.Createobject(“ADODB.Connection“) db.Open “DBQ=“,strSql=“select * from link where link_id=” & varLink_id varLink_id是传过来的 set rs=db.Execute(strSql),利用Update修改语句(续),连上数据库,建立一个Connection对象实例db 建立Recordset对象实例rs,深入进行数据库编程,ADO的内部对象 Connection对象 Command对象 Recordset对象 存取SQL Server对象 对多个表进行组合查询,ADO的内部对象,ADO的主要对象和功能说明,Connection对象,学习Connection对象的重点: 如何建立Connection对象 Connection对象的Execute方法 事务处理功能 注意事项 需明确建立Connection对象,不明确时将利用Command或Recordset对象直接连接数据库。这样无法利用Connection对象的许多功能 Connection对象一般用来连接数据库,也可用来查询、添加、删除或修改记录,但有一定局限性,如无法完成分页,建立Connection对象,第一步:建立对象,语法如下: Set Connection 对象=Server.CreateObject(“ADODB.Connection”) 第二步:用open方法来打开连接,语法如下 Connection 对象.open “参数1=参数1的值;参数2=参数2的值;”,说明: 参数不会都用到,如Access数据库就不用User和Password 连接方式不同,参数不同,如数据源用DSN,而不用数据源就用DBQ和Driver 多个参数之间用分号隔开,顺序无关系,Connection对象的Open方法的参数,Connection对象的属性,Connection对象的属性 (续),Connection对象常用属性举例,CommandTimeout:默认值为30秒,如设定为0则无限制直到执行完毕。如设置最长时间为60秒: ,在服务器慢时使用 ConnectionString:指定连接信息,如:,Connection对象常用属性举例,ConnectionTimeout:该属性默认值为15秒,如设定为0,则表示无限期等待直到Open方法完成为止。 DefaultDatabase:当数据提供者提供多个数据库时,用该属性设定默认数据库 Version:显示ADO的版本信息,Connection对象的mode属性,例子: 以上例子设置属性为只读,将不能对数据库进行添加、删除或更新记录。,Connection对象的mode属性(续),Connection对象的方法,Set Recordset对象 =Connection对象.Excute(SQL字符串) 或 Connection对象. Excute(SQL字符串),Connection对象常用方法详解,Connection对象.BeginTrans,Open:打开连接 Close:关闭连接 Excute:执行数据库查询 BeginTrans:开始一个事务,Db.open,连接数据库,建立Connection对象,address.mdb下面将建立,利用Connection对象存取数据库,strConn=“DBQ=“ Driver=Microsoft Access Driver (*.mdb)“ Set db=Server.CreateObject(“ADODB.Connection“) db.Open strConn,strSql=“select * from users“ Set rs=db.Execute(strSql) Do While Not rs.Eof Response.Write rs(“name“) & “ rs.Movenext Loop,strSql=“insert into users(name,tel,email) values”_ ”(李玫,888,)“ db.Execute(strSql),利用Connection对象存取数据库(续),查询记录,建立Recordset对象实例rs 添加记录,strSql=“update users set tel=66666666 where name=李玫“ db.Execute(strSql),strSql=“delete from users where name=李玫“ db.Execute(strSql),利用Connection对象存取数据库(续),更新记录,将李玫的电话号码改为66666666 删除记录,删除李玫的记录,db.BeginTrans,If db.Errors.Count=0 Then Db.CommitTrans Else Db.RollbackTrans End If,事务处理,开始事务处理 如果数据库执行成功则提交事务,如果有错误,则回滚事务,Command对象,建立Command对象 Command对象的属性 Command对象的方法 利用Command对象存取数据库 非参数查询 参数查询 Parameter对象和Parameters集合,Set Command对象Server.CreateObject(“ADODB.Command”),Command对象.ActiveConnection=Connection对象,建立Command对象,建立Command对象,语法如下 用ActiveConnection属性指定要用的Connection对象,语法: 建立对象的两种方法 通过Connection对象建立Command对象 直接建立Command对象,Set db=Server.CreateObject(“ADODB.Connection”) db.open “addr” addr是数据源 Set cmd=Server.CreateObject(“ADODB.Command”) cmd.ActiveConnection=db,Set cmd=Server.CreateObject(“ADODB.Command”) cmd.ActiveConnection=“addr”,建立Command对象举例,通过Connection对象建立Command对象 直接建立Command对象,Command对象的常用属性,通过Connection对象操作数据库,语法为: Comman对象. ActiveConnection=Connection对象 没有明确建立Connection对象,语法为: Command对象.ActiveConnection=数据源名称字符串,Command对象.CommandText=SQL语句、表名、查询名或存储过程名,Command对象的常用属性详解,ActiveConnection: CommandText ,其值可以是SQL语句,还可是表名、查询名或存储过程名:,Command对象.CommandType=类型值,Command对象.Prepared=布尔值,Command对象的常用属性详解(续),CommandTimeout ,默认为30秒,若为0,则永久等待,直至执行,下面设置为60秒: CommandType ,语法: Prepared ,语法:True表示先编译存储,False反之,CommandType类型值,Command对象的常用属性详解(续),Command对象的方法,Command对象的常用方法:,Execute,语法有两种,Set Recordset对象=Command对象.Execute 或 Command对象.Execute,Command对象的方法(续),CreateParameter:创造一个新的Parameter对象(参数对象) ,主要是进行参数查询的时候使用,Command对象的Execute方法的参数:,利用Command对象存取数据库,建立Connection对象,strConn=“DBQ=“ Driver=Microsoft Access Driver (*.mdb)“ Set db=Server.CreateObject(“ADODB.Connection“) db.Open strConn,Set cmd= Server.CreateObject(“ADODB.Command“) cmd.ActiveConnection=db,建立Command对象,strSql=“Select * From users“ cmd.CommandText= strSql Set rs=cmd.Execute,添加记录,strSql =“insert into users(name,tel,email) values”&_” “(李玫,88888888,)“ cmd.CommandText=strSql cmd.Execute,查询记录,利用Command对象存取数据库(续),strSql =“update users set tel=66666666 where name=李玫“ cmd.CommandText=strSql cmd.Execute,删除记录,删除李玫的记录,strSql=“delete from users where name=李玫“ cmd.CommandText=strSql cmd.Execute,更新记录,利用Command对象存取数据库(续),非参数查询,建立Command对象,Set cmd= Server.CreateObject(“ADODB.Command“) cmd.ActiveConnection=db,执行查询list,cmd.CommandType=4 指定查询信息是查询名可以省略 cmd.CommandText= “list” 指定查询名称 Set rs=cmd.Execute,Select * From users Where name=input_name,参数查询,在建立查询时,可以使用参数,如下面input_name就是一个参数: 执行时和非参数查询类似,但是要注意需要传入参数。,Parameter对象和Parameters集合,Parameters集合的属性: 只有一个属性count,用于返回Parameters集合中Parameter 对象数目 ,语法:Command对象.Paraneters.Count 建立Parameter对象,语法: Set Parameter对象=Command对象.createParameter (name,type,direction,size,value),Parameters集合的方法,Command对象的CreateParameter方法的参数,CreateParameter方法-Type取值,CreateParameter方法- Direction取值,Parameter对象和Parameters集合(续),Parameter对象的方法只有AppendChunk一个,用于添加数据到Parameter对象的末尾,语法为:,Parameter对象.AppendChunk(长文本或二进制数据),Recordset对象,建立Recordset对象 Recordset对象属性 Recordset对象的方法 利用Recordset对象查询记录 分页显示数据 利用Recordset对象更新数据库 Field对象和Fields集合,建立Recordset对象,建立Recordset对象,标准语法是: 然后用open方法打开一个数据库,语法是:,Recordset对象.open source,activeconnection,cursortype,locktype,option,Set Recordset对象=server.createobject(“ADODB.Recordset”,Recordset对象常用属性,Recordset对象常用属性(续),Recordset对象常用属性(续),Recordset对象常用属性(续),Set db=Server.CreateObject(“ADODB.Connection“) db.Open “DSN=addr“ Set rs=db.execute(“select * from users“),建立Recordset对象的方法(1),利用Connection对象的Execute方法建立 说明: 这种方法是最常用的方法。 它没有明确建立Command对象,但是会建立一个隐含的Command对象。,建立Recordset对象的方法(2),利用Connection对象的Execute方法建立 说明: 该方法明确建立了Connection对象和Command对象,建立数据库连接对象db 建立Command对象 Set cmd= Server.CreateObject(“ADODB.Command“) cmd.ActiveConnection=db cmd.CommandText= “select * from users“ Set rs=cmd.Execute,Set db=Server.CreateObject(“ADODB.Connection“) db.Open “DSN=addr“ Set rs=Server.CreateObject(“ADODB.Recordset“) Rs.open “select * from users”,db,建立Recordset对象的方法(3),利用Connection对象的Execute方法的另一种方式 说明 这是将方法一修改为明确建立Recordset对象。,假设已经建立数据库连接对象db,然后 Set cmd= Server.CreateObject(“ADODB.Command“) cmd.ActiveConnection=db cmd.CommandText= “select * from users“ Set rs=server.createobject(“ADODB.recordset”) Rs.open cmd,建立Recordset对象的方法(4),利用Connection对象的Execute方法建立 说明 这种方法明确建立三个对象,功能最强大,也最科学,建立Recordset对象的几种方法(5),直接建立Recordset对象 说明: 这种方法由于没有明确建立Connection对象和Command对象,就无法使用他们的特殊功能,Set rs=server.createobject(“ADODB.recordset”) Rs.Open “select * from users”, “Dsn=addr”,Recordset对象的方法,Open :打开记录集,语法为 Close:关闭记录集对象,语法: Requery:重新打开记录集,即先关闭再打开,语法:,Recordset对象.close,Recordset对象.requery,Recordset对象.open source,activeconnection,cursortype,locktype,options,Recordset对象.moveprevious,Recordset对象.movefirst,Recordset对象. movenext,Recordset对象的方法,Moveprevious:将记录指针移到上条记录,语法: Movefirst:将记录指针移动到第一条记录,语法: movenext :将记录指针移到下条记录,语法:,Recordset对象.movelast,Recordset对象. move,Recordset对象.addnew 字段名数组,字段值,Recordset对象的方法(续),movelast:将记录指针移到最后一条记录,语法: move:将记录指针移动指定记录,语法: addnew:向数据库添加记录,语法:,Recordset对象. update,Recordset对象.delete,Recordset对象. cancelupdate,Recordset对象的方法(续),Delete:删除当前记录,语法: update :更新数据库数据,语法为 cancelupdate:取消更才的更新动作,语法:,Vararry=Recordset对象. Getrows(number),Recordset对象.resync参数,Recordset对象的方法(续),getrows:从记录集中当前记录开始返回多条(number,-1表示全部) 记录,将符合要求的数据返回给一个二维数组(vararry),第一维表示字段(列)第二维表示记录(行),语法: resync:让客户端记录集与服务器同步更新,参数为1或2或3,语法:,Set rs=Server.CreateObject(“ADODB.Recordset“) strSql =“Select * From users“ rs.Open strSql,db,利用recordset对象查询记录,建立Connection对象db,代码略 建立Recordset对象,利用recordset对象查询记录,查询记录 关闭Recordset对象,关闭Connection对象,Do While Not rs.Eof Response.Write rs(“name“) & “ rs.Movenext Loop,分页所需条件,记录集中的对应属性,1、rs.RecordCount,2、rs.PageSize,4、rs.AbsolutePage,1、总共有多少条记录?,2、每页显示几条记录?,3、总共有几页?,4、当前要显示哪一页?,3、rs.PageCount,分页显示数据,分页显示数据(续),记录集中的对应属性 rs.RecordCount /直接得到记录集的记录总数 rs.PageSize /需要赋值,如:每页显示5条。rs.PageSize=5 rs.PageCount /直接得到属性值 rs.AbsolutePage /需要赋值,如:当前显示第二页。rs.AbsolutePage=2,如何动态的打印页码,使用For 循环实现: 确定循环的初值:如果rs不为空,则初值是1 确定循环的终值:取得rs.PageCount属性值 如何翻页 改变rs.AbsolutePage属性值 如:要浏览第二页,则rs.AbsolutePage=2,“ &_ I & “ “ %,如何通过页码实现翻页,在网页之间传递数据。本例为在本页传递页码值。 1、打印页码时,给页码加上超链接,并在链接地址后传递页码值。链接地址为本页;,如何通过页码实现翻页(续),2、接收传递的页码值,并将页码值赋值给rs.AbsolutePage 属性。,0 I=I-1 Response.Write rs(“bookname“) & “ rs.MoveNext Loop %,怎样显示当前页面的记录,确定循环的条件表达式 1、确定是否指向记录集的BOF或者EOF 2、确定是否已提取了5条 显示纪录,“ &_ I & “ Next %,其 他,打印页码时,当前页面的页码和非当前页面的页码的区别:当前页面的页码不加超链接;非当前页面的页码加上超链接。,利用Recordset对象更新数据库,Set rs=Server.CreateObject(“ADODB.Recordset“) strSql =“Select * From users“ rs.Open strSql,db,0,2 注意参数,锁定类型为可以修改,Set db=Server.CreateObject(“ADODB.Connection“) db.Open “DSN=addr“ 这里利用数据源连接,建立Connection对象 建立Recordset对象,利用

温馨提示

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

最新文档

评论

0/150

提交评论