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