ASP对数据库的操作2

Download Report

Transcript ASP对数据库的操作2

掌握使用Recordset对象处理数据
的方法
掌握使用Recordset对象分页显示
记录的方法
掌握recordset对象中使用Select
查询语句的方法
掌握Select语句的用法
山东广播电视大学
《动态网页制作》——HTML基础
2
掌握Command对象的Execute方法
掌握Command对象的常用属性
掌握Insert Into命令的使用方法
掌握Select Into命令的使用方法
掌握Delete命令的使用方法
掌握Update命令的使用方法
山东广播电视大学
《动态网页制作》——HTML基础
3
实际应用中,很少会读取数据表中
所有的数据。
一般是根据用户需求读取部分数据
山东广播电视大学
《动态网页制作》——HTML基础
4
编写ASP程序显示成绩表中所有语
文成绩小于70分的记录
山东广播电视大学
《动态网页制作》——HTML基础
5
准备工作
 建立连接对象
 连接数据库
 建立RecordSet对象
 打开数据表
读取工作
 输出表头
 按条件输出记录
山东广播电视大学
《动态网页制作》——HTML基础
6
<%
rs.movefirst
while not rs.EOF
if rs(“语文”)<70 then
Row=“<tr>”
For i=0 to rs.Fields.Count-1
Row=Row & ”<td>” &rs(i) & “</td>”
next
response.write Row & “</tr>”
end if
rs.movenext
wend
%>
山东广播电视大学
《动态网页制作》——HTML基础
7
在输出记录之前,先判断记录的语
文成绩。
总体思路:
 先把成绩表中的数据都读出来
 然后将满足条件的输出
山东广播电视大学
《动态网页制作》——HTML基础
8
编写ASP程序,按照给定学号删除
成绩表中的记录
山东广播电视大学
《动态网页制作》——HTML基础
9
设计供用户输入学号的html文件
编写ASP程序
 读取输入的学号
 读取表中的数据,找到指定记录
 调用RecordSet的Delete方法,删除记录
山东广播电视大学
《动态网页制作》——HTML基础
10
6_6_2.html
<BODY>
<form action="6_6_2.asp" method="post">
<p>请输入学号 <input type="text" name="xh"></p>
<p><input type="submit" value="删除">
<input type="reset" value="重置">
</p>
</form>
</BODY>
山东广播电视大学
《动态网页制作》——HTML基础
11
6_6_2.asp
<BODY>
<%
Dim xuehao,count
count=0
xuehao=request("xh")
While Not rs.eof
If rs("学号")=xuehao Then
rs.delete
count=count+1
End If
wend
%><p>成功删除了<%=count%>项数据</p>
</BODY>
山东广播电视大学
《动态网页制作》——HTML基础
12
删除记录分两步
 读取数据:按照给定条件找到待删除记
录
 调用rs.delete将记录删除
山东广播电视大学
《动态网页制作》——HTML基础
13
例题6.6:把成绩表中所有人的数
学成绩分数加10,但是加分后成绩
不能超过100.
山东广播电视大学
《动态网页制作》——HTML基础
14
读取成绩表中每一条记录,如果数
学成绩大于90,则直接将成绩改为
100;否则,在原来的成绩上加10
分。
山东广播电视大学
《动态网页制作》——HTML基础
15
6_6_3.asp
<BODY>
<%
count=0
rs.MoveFirst
While Not rs.eof
If (rs(“数学“)>90) Then
rs.(“数学“)=100
else
rs.(“数学“)= rs.(“数学“) +10
End If
count=count+1
rs.Movenext
wend
%><p>成功更新了<%=count%>项数据</p>
</BODY>
山东广播电视大学
《动态网页制作》——HTML基础
16
例题6.7 在成绩表中新加入一个学
生成绩记录。其中
 学号:810550
 姓名:何亮
 语文:86
 数学:95
 英文:90
山东广播电视大学
《动态网页制作》——HTML基础
17
利用RecordSet对象的AddNew方法
添加完毕后,调用Update方法
山东广播电视大学
《动态网页制作》——HTML基础
18
6_6_4.asp
<BODY>
<%
rs.addnew
rs("学号")="810550"
rs("姓名")="何亮"
rs("语文")=86
rs("数学")=95
rs("英语")=90
rs.update
%> <p>已完成添加</p>
</BODY>
山东广播电视大学
《动态网页制作》——HTML基础
19
首先,调用AddNew方法插入一条空
记录
然后,依次对空记录的每一个字段
赋值
最后,调用Update方法写入
山东广播电视大学
《动态网页制作》——HTML基础
20
分页显示好处
 每页记录较少,浏览方便
 每次读取数据时间短,用户等待少
 避免超时引起的不能正确显示结果
山东广播电视大学
《动态网页制作》——HTML基础
21
例题6.9 编写程序分页显示成绩表,
每页5条记录,只显示第1页。
山东广播电视大学
《动态网页制作》——HTML基础
22
借助RecordSet对象的PageSize属
性和AbsolutePage属性
步骤
 设置每页显示记录数和当前页码
 读取字段名
 将若干满足条件的记录显示出来
山东广播电视大学
《动态网页制作》——HTML基础
23
rs.Pagesize=5
page=1
response.write "<table border=1 width=400>"
response.write "<tr bgcolor=#00ffff>"
response.write "<td>序号</td>"
For i=0 To rs.fields.count-1
response.write "<td>" & rs.fields(i).name & "</td>"
Next
response.write "</tr>"
山东广播电视大学
《动态网页制作》——HTML基础
24
rs.absolutepage=page '设置页码
For ipage=1 To rs.pagesize
response.write "<tr>"
recno=(page-1)*rs.pagesize+ipage '设置序号值
response.write "<td>" & recno & "</td>"
For i=0 To rs.fields.count-1 '设置字段内容
response.write "<td>" & rs.fields(i).value & "</td>"
Next
response.write "</tr>"
rs.movenext
If rs.eof Then Exit For
Next
response.write "</table></center>"
山东广播电视大学
《动态网页制作》——HTML基础
25
打开数据表的程序代码
Rs.open “成绩表”,conn,3,2
每页显示的记录数
Rs.PageSize
设置显示的页号
Rs.AbsolutePage
山东广播电视大学
《动态网页制作》——HTML基础
26
在6.9的基础上修改程序,能够通
过超级链接对数据记录翻页显示。
山东广播电视大学
《动态网页制作》——HTML基础
27
添加首页、上一页、下一页、末页
等链接
当前页号是Page
 上一页页号是Page-1,下一页页号是
Page+1
 第一页没有上一页,末页没有下一页
山东广播电视大学
《动态网页制作》——HTML基础
28
<div>
<%
If page<>1 Then
response.write "<a href=" & myself?page=1 & ">首页</a>"
response.write "<a href=" & myself?page=page-1 & ">上一页</a>"
End If
If page<>rs.pagecount Then
response.write "<a href=" & myself?page=page+1 & ">下一页</a>"
response.write "<a href="& myself?page=rs.pagecount &">末页
</a>"
End If
response.write "第" & page & "页"
response.write "共" & pagecount-1 & "页"
%>
</div>
山东广播电视大学
《动态网页制作》——HTML基础
29
当前页号的记录与获取
 记录:使用变量page
 获取:request(“page”)
超级链接
 当前页如果是首页,不显示首页链接
 当前页如果是末页,不显示末页链接
页码显示
 最后一部分是当前页和总页数
山东广播电视大学
《动态网页制作》——HTML基础
30
可以高效率的读取数据
能够实现记录
 查询
其它的SQL语句
 插入
 修改
 删除
山东广播电视大学
《动态网页制作》——HTML基础
31
第1步:构造select语句
Sql=“select ...”
第2步:打开数据库表
Rs.open sql,conn,2,2
山东广播电视大学
《动态网页制作》——HTML基础
32
语法:
Select 字段列表 form 数据表
例如:
Select 姓名,语文,数学,英语 from 成绩表
山东广播电视大学
《动态网页制作》——HTML基础
33
语法:
Select 字段列表 form 数据表 where 筛
选条件
例如:
Select 姓名,语文,数学,英语 from 成绩表
where 英语<60 or 数学<60 or 语文<60
山东广播电视大学
《动态网页制作》——HTML基础
34
语法:
Select 字段列表 form 数据表 order by
字段列表
例如:
Select * from 成绩表 order by 语文
山东广播电视大学
《动态网页制作》——HTML基础
35
是ADO对象模型中一个重要对象
 是ADO中专门设计的对数据库执行一组命
令和操作的对象
用来定义数据库的查询动作
控制对数据库发出的请求信息
山东广播电视大学
《动态网页制作》——HTML基础
36
相同点
 两个对象都会返回数据集
不同点
 COMMAND用来执行一条SQL语句
 RECORDSET是查询后返回的记录集
 如果你的SQL语句只是一个简单的语句的
话,最好使用recordset对像
山东广播电视大学
《动态网页制作》——HTML基础
37
属性
含义
ActiveConnection
定义Command对象的连接信息
CommandText
定义传送给数据提供者的命令文本
CommandType
提示设定的命令字符串类型
CommandTimeOut
设定等候运行一条命令的最长等待时间
Name
设置和读取一个Command对象的名字
Prepared
指示命令执行前是否要创建一个预备语句
State
设置和读取Command对象的状态
山东广播电视大学
《动态网页制作》——HTML基础
38
Excute方法
Cancel方法
山东广播电视大学
《动态网页制作》——HTML基础
39
语法
 返回记录集
Set rs=cm.Excute(RecordsAffected,
Parameters,Options)
 无返回记录集
cm. rs.Excute(RecordsAffected,
Parameters, Options)
山东广播电视大学
《动态网页制作》——HTML基础
40
RecordsAffected
 表示在操作中受到影响的记录数目
 仅用于操作查询或者存储过程
Parameters
 传递给SQL语句的参数列表
Options
 怎样执行CommandText属性中的命令
山东广播电视大学
《动态网页制作》——HTML基础
41
使用Command对象实现数据库查询。
 找出所有语文成绩大于85分
 按照从低到高的顺序排列
 如果不存在,给出提示信息
山东广播电视大学
《动态网页制作》——HTML基础
42
步骤
 创建Connection对象,完成连接
 创建Command对象,设置查询
 返回并打开RecordSet对象
山东广播电视大学
《动态网页制作》——HTML基础
43
'建立Connection对象
Set conn=Server.CreateObject("ADODB.Connection")
Provider="Provider=Microsoft.Jet.OLEDB.4.0"
DBpath="Data Source=" & Server.MapPath("data.mdb")
conn.open Provider & DBpath
山东广播电视大学
《动态网页制作》——HTML基础
44
Set cmd=server.CreateObject("ADODB.command")
Set cmd.activeconnection=conn
mark=85
SQL="select * from 成绩表 where 语文>=" & mark & "order
by 语文"
cmd.commandtext=SQL
Set rs=cmd.Excute
山东广播电视大学
《动态网页制作》——HTML基础
45
If rs Is Nothing Then
response.write "调用失败"
response.End
End If
If rs.eof Then
response.write "没有查询到符合条件的记录"
response.End
End If
山东广播电视大学
《动态网页制作》——HTML基础
46
建立与数据库的连接部分
 与RecordSet对象是完全相同的
构造好的Select语句赋值
cmd.CommandText=SQL
山东广播电视大学
《动态网页制作》——HTML基础
47
使用RecordSet对象处理数据
使用Select查询数据
使用Command对象处理数据
山东广播电视大学
《动态网页制作》——HTML基础
48
主教材P243上机练习6
山东广播电视大学
《动态网页制作》——HTML基础
49