ASP数据库编程ASP存取数据库.ppt

上传人:牧羊曲112 文档编号:6501810 上传时间:2023-11-07 格式:PPT 页数:89 大小:312KB
返回 下载 相关 举报
ASP数据库编程ASP存取数据库.ppt_第1页
第1页 / 共89页
ASP数据库编程ASP存取数据库.ppt_第2页
第2页 / 共89页
ASP数据库编程ASP存取数据库.ppt_第3页
第3页 / 共89页
ASP数据库编程ASP存取数据库.ppt_第4页
第4页 / 共89页
ASP数据库编程ASP存取数据库.ppt_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《ASP数据库编程ASP存取数据库.ppt》由会员分享,可在线阅读,更多相关《ASP数据库编程ASP存取数据库.ppt(89页珍藏版)》请在三一办公上搜索。

1、第6章 ASP数据库编程,ASP存取数据库,学习连接数据库实现查询、添加、删除和修改功能了解ADO的几大对象及相互关系学习各种事务处理和分页显示数据学习连接SQL Server数据库的语句。,目的与要求,熟练掌握连接数据库的两种方式利用Select语句查询记录、Insert语句添加、Delete语句删除、Update语句修改记录了解ADO的几大内部对象:Connection对象、Recordset对象、Command对象的概念和相互关系 会使用事务处理、会分页显示,目的与要求(续),连接SQL Server数据库的语句了解ADO的几大内部对象:Connection对象、Recordset对象、

2、Command对象的概念和相互关系会使用事务处理、会分页显示连接SQL Server数据库的语句,重点难点,数据库连接和SQL语句的写法利用execute方法和sql语句实现查询、添加、修改、删除利用Connection对象、Recordset对象、Command对象实现数据库的深入操作,如分页显示等(难点),ASP内部组件概述,数据库存取组件简介:数据库存取组件是使用ADO技术存取数据库的一种ASP内置组件,是ASP内置组件中最重要的和使用最多的一个组件。ADO包括三个主要对象是:Connection、Command和Recordset以下将以网络导航为例讲解连接数据库、查询记录、添加记录、

3、删除记录、修改记录,利用数据库存取组件存取数据库,数据库准备,在Access中建立数据库wwwlink.mdb,存放在C:inetpubwwwroot目录下,如图,连接数据库,连接数据库,要用到Connection对象,具体连接方法有两种:第一种:利用数据源连接特点:连接简单,但需要在服务器设置数据源假设配置的数据源名字为wlink,则代码如下,连接数据库,不用数据源的连接方法优点:方便在机器之间移植代码代码举例(假设数据库与页面在同一目录下):,连接数据库,对于第二种方法,还可采用Server对象的Mappath方法,修改为:,利用select语句查询记录,查询时用Connection对象的

4、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方法,不必返回记录集。连接数

5、据库,建立一个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删

6、除记录,删除记录,利用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

7、_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对象实例

8、rs,深入进行数据库编程,ADO的内部对象Connection对象Command对象Recordset对象存取SQL Server对象对多个表进行组合查询,ADO的内部对象,ADO的主要对象和功能说明,Connection对象,学习Connection对象的重点:如何建立Connection对象Connection对象的Execute方法事务处理功能注意事项需明确建立Connection对象,不明确时将利用Command或Recordset对象直接连接数据库。这样无法利用Connection对象的许多功能Connection对象一般用来连接数据库,也可用来查询、添加、删除或修改记录,但有一定局

9、限性,如无法完成分页,建立Connection对象,第一步:建立对象,语法如下:Set Connection 对象=Server.CreateObject(“ADODB.Connection”)第二步:用open方法来打开连接,语法如下Connection 对象.open“参数1=参数1的值;参数2=参数2的值;”,说明:参数不会都用到,如Access数据库就不用User和Password连接方式不同,参数不同,如数据源用DSN,而不用数据源就用DBQ和Driver多个参数之间用分号隔开,顺序无关系,Connection对象的Open方法的参数,Connection对象的属性,Connecti

10、on对象的属性(续),Connection对象常用属性举例,CommandTimeout:默认值为30秒,如设定为0则无限制直到执行完毕。如设置最长时间为60秒:,在服务器慢时使用ConnectionString:指定连接信息,如:,Connection对象常用属性举例,ConnectionTimeout:该属性默认值为15秒,如设定为0,则表示无限期等待直到Open方法完成为止。DefaultDatabase:当数据提供者提供多个数据库时,用该属性设定默认数据库Version:显示ADO的版本信息,Connection对象的mode属性,例子:以上例子设置属性为只读,将不能对数据库进行添加、

11、删除或更新记录。,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=M

12、icrosoft 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对象存取数据库(续),

13、查询记录,建立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 ThenDb.CommitTransElseDb.RollbackTransEnd If,事务处理,开始事

14、务处理如果数据库执行成功则提交事务,如果有错误,则回滚事务,Command对象,建立Command对象 Command对象的属性 Command对象的方法 利用Command对象存取数据库 非参数查询 参数查询 Parameter对象和Parameters集合,Set Command对象Server.CreateObject(“ADODB.Command”),Command对象.ActiveConnection=Connection对象,建立Command对象,建立Command对象,语法如下用ActiveConnection属性指定要用的Connection对象,语法:建立对象的两种方法通过

15、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对象,Com

16、mand对象的常用属性,通过Connection对象操作数据库,语法为:Comman对象.ActiveConnection=Connection对象没有明确建立Connection对象,语法为:Command对象.ActiveConnection=数据源名称字符串,Command对象.CommandText=SQL语句、表名、查询名或存储过程名,Command对象的常用属性详解,ActiveConnection:CommandText,其值可以是SQL语句,还可是表名、查询名或存储过程名:,Command对象.CommandType=类型值,Command对象.Prepared=布尔值,Com

17、mand对象的常用属性详解(续),CommandTimeout,默认为30秒,若为0,则永久等待,直至执行,下面设置为60秒:CommandType,语法:Prepared,语法:True表示先编译存储,False反之,CommandType类型值,Command对象的常用属性详解(续),Command对象的方法,Command对象的常用方法:,Execute,语法有两种,Set Recordset对象=Command对象.Execute或Command对象.Execute,Command对象的方法(续),CreateParameter:创造一个新的Parameter对象(参数对象),主要是进

18、行参数查询的时候使用,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 userscmd.CommandText=strSql

19、Set rs=cmd.Execute,添加记录,strSql=insert into users(name,tel,email)values”&_”“(李玫,88888888,)cmd.CommandText=strSqlcmd.Execute,查询记录,利用Command对象存取数据库(续),strSql=update users set tel=66666666 where name=李玫cmd.CommandText=strSqlcmd.Execute,删除记录,删除李玫的记录,strSql=delete from users where name=李玫cmd.CommandText=s

20、trSqlcmd.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就是一个参数:执行时和非参数

21、查询类似,但是要注意需要传入参数。,Parameter对象和Parameters集合,Parameters集合的属性:只有一个属性count,用于返回Parameters集合中Parameter 对象数目,语法:Command对象.Paraneters.Count建立Parameter对象,语法:Set Parameter对象=Command对象.createParameter(name,type,direction,size,value),Parameters集合的方法,Command对象的CreateParameter方法的参数,CreateParameter方法-Type取值,Creat

22、eParameter方法-Direction取值,Parameter对象和Parameters集合(续),Parameter对象的方法只有AppendChunk一个,用于添加数据到Parameter对象的末尾,语法为:,Parameter对象.AppendChunk(长文本或二进制数据),Recordset对象,建立Recordset对象 Recordset对象属性 Recordset对象的方法利用Recordset对象查询记录分页显示数据利用Recordset对象更新数据库Field对象和Fields集合,建立Recordset对象,建立Recordset对象,标准语法是:然后用open方法

23、打开一个数据库,语法是:,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

24、users),建立Recordset对象的方法(1),利用Connection对象的Execute方法建立说明:这种方法是最常用的方法。它没有明确建立Command对象,但是会建立一个隐含的Command对象。,建立Recordset对象的方法(2),利用Connection对象的Execute方法建立说明:该方法明确建立了Connection对象和Command对象,建立数据库连接对象db建立Command对象Set cmd=Server.CreateObject(ADODB.Command)cmd.ActiveConnection=dbcmd.CommandText=“select*fro

25、m users Set rs=cmd.Execute,Set db=Server.CreateObject(ADODB.Connection)db.Open DSN=addrSet rs=Server.CreateObject(ADODB.Recordset)Rs.open“select*from users”,db,建立Recordset对象的方法(3),利用Connection对象的Execute方法的另一种方式说明这是将方法一修改为明确建立Recordset对象。,假设已经建立数据库连接对象db,然后Set cmd=Server.CreateObject(ADODB.Command)cm

26、d.ActiveConnection=dbcmd.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

27、(“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对象.mov

28、enext,Recordset对象的方法,Moveprevious:将记录指针移到上条记录,语法:Movefirst:将记录指针移动到第一条记录,语法:movenext:将记录指针移到下条记录,语法:,Recordset对象.movelast,Recordset对象.move,Recordset对象.addnew 字段名数组,字段值,Recordset对象的方法(续),movelast:将记录指针移到最后一条记录,语法:move:将记录指针移动指定记录,语法:addnew:向数据库添加记录,语法:,Recordset对象.update,Recordset对象.delete,Recordset对

29、象.cancelupdate,Recordset对象的方法(续),Delete:删除当前记录,语法:update:更新数据库数据,语法为cancelupdate:取消更才的更新动作,语法:,Vararry=Recordset对象.Getrows(number),Recordset对象.resync参数,Recordset对象的方法(续),getrows:从记录集中当前记录开始返回多条(number,-1表示全部)记录,将符合要求的数据返回给一个二维数组(vararry),第一维表示字段(列)第二维表示记录(行),语法:resync:让客户端记录集与服务器同步更新,参数为1或2或3,语法:,Se

30、t rs=Server.CreateObject(ADODB.Recordset)strSql=Select*From usersrs.Open strSql,db,利用recordset对象查询记录,建立Connection对象db,代码略建立Recordset对象,利用recordset对象查询记录,查询记录关闭Recordset对象,关闭Connection对象,Do While Not rs.Eof Response.Write rs(name)&rs.MovenextLoop,分页所需条件,记录集中的对应属性,1、rs.RecordCount,2、rs.PageSize,4、rs.A

31、bsolutePage,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

32、属性值如何翻页改变rs.AbsolutePage属性值 如:要浏览第二页,则rs.AbsolutePage=2,&_ I %,如何通过页码实现翻页,在网页之间传递数据。本例为在本页传递页码值。1、打印页码时,给页码加上超链接,并在链接地址后传递页码值。链接地址为本页;,如何通过页码实现翻页(续),2、接收传递的页码值,并将页码值赋值给rs.AbsolutePage 属性。,0I=I-1Response.Write rs(“bookname)&rs.MoveNextLoop%,怎样显示当前页面的记录,确定循环的条件表达式1、确定是否指向记录集的BOF或者EOF 2、确定是否已提取了5条

33、显示纪录,&_ I&Next%,其 他,打印页码时,当前页面的页码和非当前页面的页码的区别:当前页面的页码不加超链接;非当前页面的页码加上超链接。,利用Recordset对象更新数据库,Set rs=Server.CreateObject(ADODB.Recordset)strSql=Select*From usersrs.Open strSql,db,0,2 注意参数,锁定类型为可以修改,Set db=Server.CreateObject(ADODB.Connection)db.Open DSN=addr 这里利用数据源连接,建立Connection对象建立Recordset对象,利用Re

34、cordset对象更新数据库 添加记录,Dim fields(2),values(2)fields(0)=namefields(1)=Telfields(2)=emailvalues(0)=李玫values(1)=88888888values(2)=rs.AddNew fields,valuesrs.Update,Dim fields2(0),values2(0)fields2(0)=telvalues2(0)=66666666rs.Update fields2,values2,rs.Deleters.Update,db.Close Set db=nothing,利用Recordset对象更新

35、数据库,更新记录(修改李玫的电话号码)删除记录,删除李玫的记录关闭Connection对象,Set field对象=recordset对象.fields.item(字段名或字段索引值),Field对象.fields.count,Field对象和Fields集合,Field集合的属性:只有count属性,返回记录集中字段(field对象)的个数,语法为:Fields集合的方法,只有一个item方法,建立某个field对象,语法为:,field对象.appendchunk data,field对象.value,Field对象和Fields集合(续),field对象的属性:最有用的属性是value,

36、获取数据库的字段值,语法为:Field对象的方法只有一个appendchunk,用于在当前数据末尾添加数据,语法为:,存取SQL Server数据库,Set db=server.createobject(“adodb.connection”)Db.open“server=localhost;database=sqltest;uid=tt”driver=sqlserver”,已知:建立SQL数据库sqltest,登录帐号tt,密码11,ODBC数据源名称为test。连接方法如下:创建没有ODBC数据源的连接,创建有ODBC数据源的连接创建基于OLE DB的连接,Set db=server.createobject(“adodb.connection”)Db.open“dsn=test;uid=tt;pwd=11”,Set db=server.createobject(“adodb.connection”)Db.open“provider=SQLOLEDB;server=localhost;”driver=sql server”,存取SQL Server数据库(续),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号