【参加讨论】LV与ASP综合运用(二)
接上节,现在开始第三步:“删除”功能:
在《ASP操作数据库入门》一节的最后,我给出了删除一条记录的SQL语句,不知道大家当时自己动手试验了没。如果没的话也没有关系,现在就跟我一起在FLASH中实现这个功能吧。而且我将演示如何利用“zonghe.asp”一个后台文件实现所有功能。
在看代码之前,请大家先思考这样一个问题,如果要删除一条记录的话,你依据什么删除呢?依据“yuwen”成绩可以吗?打开我们的数据库表可以看到“毛宁”,“巩丽”和“李小龙”都是100分,如果我们删除语文成绩为100的记录,就会同时把这三个人的记录都删除了。为了避免发生这种情况,我们一般都依据数据类型为“自动编号”的字段,因为自动编号字段是绝对不会重复的,比如这里的“xuhao”。
按照我的开发习惯,我们还是先来写后台,请在“zonghe.asp”写如下代码:
<%@LANGUAGE="JAVASCRIPT"%>
<%
//建立数据库链接对象
lianjie = Server.CreateObject("ADODB.Connection");
//打开数据库
lianjie.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("shujuku.mdb"));
//创建“记录集”
rs = Server.CreateObject("ADODB.Recordset");
//设置一个选项变量,根据这个选项的值,来决定执行对应功能的代码,这个变量来自FLASH
var xuanxiang=Request("xuanxiang_flash");
%>
<%
//——————根据变量“xuanxiang”决定调用对应的函数
if(xuanxiang=="显示"){
//查询显示记录演示
xianshi();
}else if(xuanxiang=="删除"){
//删除记录演示
shanchu();
}
%>
<%
//——————定义“显示”的功能函数
function xianshi(){
//查询的SQL语句
sql="select * from shujubiao order by xuhao desc";
//执行数据库查询
rs.Open(sql, lianjie, 3);
//从FLASH接收当前页码
var dangqianye=Request("dangqianye_flash");
//从FLASH接收每页显示的记录条数
var meiyejilu=Request("meiyejilu_flash");
//声明一个变量用来存储要输出的内容,初始为空
var shuchuneirong="";
//设置每页显示的记录条数
rs.PageSize=meiyejilu;
//设置当前显示的页码
rs.AbsolutePage=dangqianye;
//获取记录总条数
var zongtiaoshu=rs.RecordCount;
//获取总页数
var zongyeshu=rs.PageCount;
//利用循环显示一页的所有内容,具体的页码在第二段代码的“rs.AbsolutePage”中指定了
for (i=0;i<meiyejilu;i++){
if(!rs.EOF){
//获取字段内容
var xuhao=rs("xuhao");
var xingming=rs("xingming");
var yuwen=rs("yuwen");
var shuxue=rs("shuxue");
//将要显示的内容记录在“shuchuneirong”中
shuchuneirong =shuchuneirong+"<br>序号:"+ xuhao +" | 姓名:"+xingming+" | 语文:"+yuwen+" | 数学:"+shuxue;
rs.MoveNext();
}
}
//将查询出来的内容输出成变量/值配对形式
Response.Write("&neirong_asp="+shuchuneirong);
//输出总条数
Response.Write("&zongtiaoshu_asp="+zongtiaoshu);
//输出总页数
Response.Write("&zongyeshu_asp="+zongyeshu);
}
%>
<%
//——————定义“删除”的功能函数
function shanchu(){
//接收从FLASH传递过来的序号ID
var id=Request("xuhao_flash");
//删除的SQL语句
sql="delete from shujubiao where xuhao="+id;
//执行数据库查询
rs.Open(sql, lianjie, 3);
}
%>