1 / 87

ASP 存取数据库

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

ivy-langley
Download Presentation

ASP 存取数据库

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP存取数据库 • 学习连接数据库 • 实现查询、添加、删除和修改功能 • 了解ADO的几大对象及相互关系 • 学习各种事务处理和分页显示数据 • 学习连接SQL Server数据库的语句。

  2. 目的与要求 • 熟练掌握连接数据库的两种方式 • 利用Select语句查询记录、Insert语句添加、Delete语句删除、Update语句修改记录 • 了解ADO的几大内部对象:Connection对象、Recordset对象、Command对象的概念和相互关系 • 会使用事务处理、会分页显示

  3. 重点难点 • 数据库连接和SQL语句的写法 • 利用execute方法和sql语句实现查询、添加、修改、删除 • 利用Connection对象、Recordset对象、Command对象实现数据库的深入操作,如分页显示等(难点)

  4. ASP内部组件概述

  5. 数据库存取组件简介: 数据库存取组件是使用ADO技术存取数据库的一种ASP内置组件,是ASP内置组件中最重要的和使用最多的一个组件。 ADO包括三个主要对象是:Connection、Command和Recordset 以下将以网络导航为例讲解 连接数据库、查询记录、添加记录、删除记录、修改记录 利用数据库存取组件存取数据库

  6. 数据库准备 • 在Access中建立数据库wwwlink.mdb,存放在站点根目录下,如图

  7. 连接数据库 • 连接数据库,要用到Connection对象,具体连接方法有两种: • 第一种:利用数据源连接 • 特点:连接简单,但需要在服务器设置数据源 • 假设配置的数据源名字为wlink,则代码如下 • <% • Set db=server.CreateObject(“ADODB.Connection”) • Db.open “wlink” • %>

  8. 连接数据库 • 不用数据源的连接方法 • 优点:方便在机器之间移植代码 • 代码举例(假设数据库与页面在同一目录下): • <% • Set db=server.CreateObject(“ADODB.Connection”) • Db.open “dbq=c:\inetpub\wwwroot\wwwlink.mdb;”&_ • “Driver={Microsoft Access Driver(*.mdb)}” • %>

  9. 连接数据库 • 对于第二种方法,还可采用Server对象的Mappath方法,修改为: • <% • Set db=server.CreateObject(“ADODB.Connection”) • Db.open “dbq=”&server.mappath(“wwwlink.mdb”)&_ • “;Driver={Microsoft Access Driver(*.mdb)}” • %>

  10. 利用select语句查询记录 • 查询时用Connection对象的Execute方法打开一个记录集 • 然后在记录集中移动记录指针依次显示所有记录 • 下面建立一个Connection对象实例db <% set db=Server.Createobject("ADODB.Connection") db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_ ";DRIVER={Microsoft Access Driver (*.mdb)};" %>

  11. 利用select语句查询记录(续) • 建立Recordset对象实例rs dim strsql,rs strsql="select * from link order by link_id desc" '按降序排列set rs=db.Execute(strsql)

  12. 利用insert语句添加记录 • 添加记录,利用Connection对象的Execute方法,不必返回记录集。 • 连接数据库,建立一个Connection对象实例db set db=Server.Createobject("ADODB.Connection") db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_ ";DRIVER={Microsoft Access Driver (*.mdb)};"

  13. 利用insert语句添加记录(续) • 获取上个页面的插入信息 varName=Request("name") varURL=Request("URL") varIntro=Request("intro")

  14. 利用insert语句添加记录(续) • 插入Sql语句的写法 • 利用Execute方法,添加记录 StrSql="insert into link(name,URL, intro,”&_ ”submit_date) values(‘" &varName & “’,’" &_ varURL & “’,’" &_ varIntro & “’,’" & Date() & “’)" db.execute(strSql)

  15. 利用Delete删除记录 • 删除记录,利用Connection对象的Execute方法,不必返回记录集 • 连上数据库,建立一个Connection对象实例db set db=Server.Createobject("ADODB.Connection") db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_ ";DRIVER={Microsoft Access Driver (*.mdb)};"

  16. 利用Delete删除记录(续) • 利用Execute方法,删除记录 • 传过来的要删除的记录的记录编号 • 删除SQL语句的写法 varLink_id=Request.QueryString("link_id“) strSql="delete from link where link_id=" & varLink_id db.Execute(strSql)

  17. 利用Update修改语句 • 修改记录,利用Connection对象的Execute方法。 • 获取传入的要修改的Link_ID varLink_id=Request.QueryString("link_id")

  18. 利用Update修改语句(续) • 连上数据库,建立一个Connection对象实例db • 建立Recordset对象实例rs set db=Server.Createobject("ADODB.Connection")db.Open "DBQ="&Server.Mappath("wwwlink.mdb")&_";DRIVER={Microsoft Access Driver (*.mdb)};" strSql=“select * from link where link_id=” & varLink_id ‘varLink_id是传过来的 set rs=db.Execute(strSql)

  19. 深入进行数据库编程 • ADO的内部对象 • Connection对象 • Command对象 • Recordset对象 • 存取SQL Server对象 • 对多个表进行组合查询

  20. ADO的内部对象 • ADO的主要对象和功能说明

  21. Connection对象 • 学习Connection对象的重点: • 如何建立Connection对象 • Connection对象的Execute方法 • 事务处理功能 • 注意事项 • 需明确建立Connection对象,不明确时将利用Command或Recordset对象直接连接数据库。这样无法利用Connection对象的许多功能 • Connection对象一般用来连接数据库,也可用来查询、添加、删除或修改记录,但有一定局限性,如无法完成分页

  22. 建立Connection对象 • 第一步:建立对象,语法如下: • Set Connection 对象=Server.CreateObject(“ADODB.Connection”) • 第二步:用open方法来打开连接,语法如下 • Connection 对象.open “参数1=参数1的值;参数2=参数2的值;……”

  23. Connection对象的Open方法的参数 • 说明: • 参数不会都用到,如Access数据库就不用User和Password • 连接方式不同,参数不同,如数据源用DSN,而不用数据源就用DBQ和Driver • 多个参数之间用分号隔开,顺序无关系

  24. Connection对象的属性

  25. Connection对象的属性 (续)

  26. Connection对象常用属性举例 • CommandTimeout:默认值为30秒,如设定为0则无限制直到执行完毕。如设置最长时间为60秒: <%db.CommandTimeout=60%>,在服务器慢时使用 • ConnectionString:指定连接信息,如: <% Db. ConnectionString=“Dbq=”&Server.mappath(“address.mdb”)&_ ”;Driver={Microsoft Access Driver(*.mdb)}” %>

  27. Connection对象常用属性举例 • ConnectionTimeout:该属性默认值为15秒,如设定为0,则表示无限期等待直到Open方法完成为止。 • DefaultDatabase:当数据提供者提供多个数据库时,用该属性设定默认数据库 • Version:显示ADO的版本信息 <%Response.write db.version%>

  28. Connection对象的mode属性

  29. Connection对象的mode属性(续) • 例子: <% Set db=server.createObject(“ADODB.Connection”) Db.mode=1 %> • 以上例子设置属性为只读,将不能对数据库进行添加、删除或更新记录。

  30. Connection对象的方法

  31. Connection对象常用方法详解 Db.open • Open:打开连接 • Close:关闭连接 • Excute:执行数据库查询 • BeginTrans:开始一个事务 • <% Db.close • Set db=nothing • %> Set Recordset对象 =Connection对象.Excute(SQL字符串) 或 Connection对象. Excute(SQL字符串) Connection对象.BeginTrans

  32. 利用Connection对象存取数据库 strConn="DBQ=" & Server.Mappath("address.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}" Set db=Server.CreateObject("ADODB.Connection") db.Open strConn • 连接数据库,建立Connection对象,address.mdb下面将建立

  33. 利用Connection对象存取数据库(续) • 查询记录,建立Recordset对象实例rs • 添加记录 strSql="select * from users" Set rs=db.Execute(strSql) Do While Not rs.Eof Response.Write rs("name") & "<br>" rs.Movenext Loop strSql="insert into users(name,tel,email) values”_ ”('李玫','888','limei@263.net')" db.Execute(strSql)

  34. 利用Connection对象存取数据库(续) • 更新记录,将李玫的电话号码改为66666666 • 删除记录,删除李玫的记录 strSql="update users set tel='66666666' where name='李玫'" db.Execute(strSql) strSql="delete from users where name='李玫'" db.Execute(strSql)

  35. 事务处理 • 开始事务处理 • 如果数据库执行成功则提交事务,如果有错误,则回滚事务 db.BeginTrans If db.Errors.Count=0 Then Db.CommitTrans Else Db.RollbackTrans End If

  36. Command对象 • 建立Command对象 • Command对象的属性 • Command对象的方法 • 利用Command对象存取数据库 • 非参数查询 • 参数查询 • Parameter对象和Parameters集合

  37. 建立Command对象 • 建立Command对象,语法如下 • 用ActiveConnection属性指定要用的Connection对象,语法: • 建立对象的两种方法 • 通过Connection对象建立Command对象 • 直接建立Command对象 Set Command对象=Server.CreateObject(“ADODB.Command”) Command对象.ActiveConnection=Connection对象

  38. 建立Command对象举例 • 通过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”

  39. Command对象的常用属性

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

  41. Command对象的常用属性详解(续) • CommandTimeout ,默认为30秒,若为0,则永久等待,直至执行,下面设置为60秒: • CommandType ,语法: • Prepared ,语法:True表示先编译存储,False反之 <%cmd.CommandTimeout=60%> Command对象.CommandType=类型值 Command对象.Prepared=布尔值

  42. Command对象的常用属性详解(续) CommandType类型值

  43. Command对象的方法 • Command对象的常用方法: • Execute,语法有两种 Set Recordset对象=Command对象.Execute 或 Command对象.Execute

  44. Command对象的Execute方法的参数: Command对象的方法(续) • CreateParameter:创造一个新的Parameter对象(参数对象),主要是进行参数查询的时候使用

  45. 利用Command对象存取数据库 建立Command对象 • 建立Connection对象 strConn="DBQ=" & Server.Mappath("address.mdb") &_ ";Driver={Microsoft Access Driver (*.mdb)}" Set db=Server.CreateObject("ADODB.Connection") db.Open strConn Set cmd= Server.CreateObject("ADODB.Command") cmd.ActiveConnection=db

  46. 查询记录 利用Command对象存取数据库(续) strSql="Select * From users" cmd.CommandText= strSql Set rs=cmd.Execute • 添加记录 strSql ="insert into users(name,tel,email) values”&_” “('李玫','88888888','limei@263.net')" cmd.CommandText=strSql cmd.Execute

  47. strSql="delete from users where name='李玫'" cmd.CommandText=strSql cmd.Execute 更新记录 利用Command对象存取数据库(续) strSql ="update users set tel='66666666' where name='李玫'" cmd.CommandText=strSql cmd.Execute • 删除记录,删除李玫的记录

  48. 非参数查询 • 建立Command对象 Set cmd= Server.CreateObject("ADODB.Command") cmd.ActiveConnection=db • 执行查询list cmd.CommandType=4 ‘指定查询信息是查询名可以省略 cmd.CommandText= “list”‘指定查询名称 Set rs=cmd.Execute

  49. 参数查询 • 在建立查询时,可以使用参数,如下面input_name就是一个参数: • 执行时和非参数查询类似,但是要注意需要传入参数。 Select * From users Where name=input_name

  50. Parameter对象和Parameters集合 • Parameters集合的属性: • 只有一个属性count,用于返回Parameters集合中Parameter • 对象数目 ,语法:Command对象.Paraneters.Count • 建立Parameter对象,语法: Set Parameter对象=Command对象.createParameter (name,type,direction,size,value)

More Related