当前位置: 首页 > 图文教程 > 数据库 > Access > 巧用in关键字实现数据的批量删除

Access
如何给ODBC连接打开连接池
Access数据库与SQLserver2000的数据互导
如何在退出整个系统前提示用户
通过查询返回数据库对象的名称
Delphi中的Access技巧集
ACCESS中如何插入超级链接?
怎样用代码隐藏、最大化、最小化ACCESS的主窗口
操作系统环境 Environ 函数
ACCESS2000升迁向导“溢出”错误处理方法
如何在ACCESS中压缩当前数据库
在VB中用代码打印ACCESS报表
以指定工作组文件启动MDB文件
长期使用中型Access数据库的一点经验
显示数据库窗口的捷径
取得磁碟机之Volumn及Serial Number
ACCESS默认保存路径的修改方法
数据库设计范式
Access无需DSN文件快速连接SQL Server方法
用Access 2000进行班级管理
启动命令行选项

Access 中的 巧用in关键字实现数据的批量删除


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 39 ::
收藏到网摘: n/a

在WEB编程中经常会碰到数据的批量删除。我们通常的做法是通过循环来实现数据的批量的删除。但是一个程序模块循环用的太多那么这个程序模块的质量就会下降。因此本文就介绍通过巧用in关键字来实现数据的批量删除。

让我们通过一个例子来讲解IN关键字的数据批量删除,假如我们要删除这个页面的数据,相关代码如下:

以下为引用的内容:

  managenews.asp <!--#include file="conn.asp"-->
  <%'数据库的连接文件我就不多说了%> <html>
  <head>
  <title>管理新闻</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <link rel="stylesheet" href="../index/style.css" type="text/css">
  <script>
  function del () //用于判断记录有没有选中的函数
  {
  var flag=true;
  var temp="";
  var tmp;
  if((document.form1.answer.length+"")=="undefined") {tmp=1}else{tmp=document.form1.answer.length}
  if (tmp==1){
  if (document.form1.answer.checked){
  flag=false;
  temp=document.form1.answer.value
  }
  }else{
  for (i=0;i<document.form1.answer.length;i++) {
  if (document.form1.answer[i].checked){
  if (temp==""){
  flag=false;
  temp=document.form1.answer[i].value
  }else{
  flag=false;
  temp = temp +","+ document.form1.answer[i].value
  }
  }
  }
  }
  if (flag){ alert("对不起,你还没有选择!")}
  else{ name=document.form1.name.value
  //alert(name)
  if (confirm("确实要删除?")){
  window.location="delnews.asp?id=" + temp;
  }
  }
  return !flag;
  }
  </script>
  </head>
  <body>

 

 
  <script language=Javascript>
  function checkall(all)//用于判断全选记录的函数
  {
  var a = document.getElementsByName("answer");
  for (var i=0; i<a.length; i++) a[i].checked = all.checked;
  }
  </script>
  <%
  set rs=server.createobject("adodb.recordset")
  sql="select * from news order by addtime desc"
  rs.open sql,conn,1,3 %>
  <% if rs.eof then %>
  <table width="50%" border="0" align="center" ID="Table2">
  <tr>
  <td align="center">
  没有新闻!
  </tr>
  </table>
  <% else %>
  <form method="POST" id=form1 name=form1>
  <table width="90%" border="0" align="center" class="tabDocborder" ID="Table3">
  <tr>
  <td>
  <table width="80%" align="center" id=TabDocMain border='1' cellspacing='0' cellpadding='0' bordercolorlight='#82b4dd' bordercolor='#b6d3eb'     class="TabDocMain">
  <thead>
  <tr>
  <td colspan="7" align="center">
  新闻管理中心
  </td>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td align=center>
  删除框
  </td>
  <td align=center>
  新闻标题
  </td>
  <td align=center>
  发布时间
  </td>
  <td align=center>
  管理
  </td>
  </tr>
  <%
  do while not rs.eof
 %>

  <tr>
  <td align=center><input type="checkbox" name="answer" value="<%=rs("id")%>" ID="Checkbox1">
  </td>
  <td align=left><%If Len(rs("title"))<=30 Then%><%=rs("title")%><%else%>
  <%=(Left(rs("title"),30))%>...
  <%end if %></td>
  <td align=left><%=rs("addtime")%></td>
  <td align=center><a href="editnews.asp?id=<%=rs("id")%>">编 辑</a></td>
  </tr>
  </tbody>
  <%
  rs.movenext
  loop
  %>

  <tr>
  <td colspan="7" align="center">
  <input type="checkbox" name="chkall" value="on" onclick="checkall(this)" ID="Checkbox2">选中所有的显示新闻   
  <input type="button" name="btnDelete" value="删除" style='font-family: 宋体; font-size: 9pt;' onclick="del()" ID="Button1">
  </td>
  </tr>
  </table>
  </form>
  </td>
  </tr>
  <%end if%>
  </table>
  <% set rs=nothing
  conn.close
  set conn=nothing
  %>
  </body>
  </html>
  delnews.asp文件
  <!--#include file="conn.asp"-->
  <%
  arrdel=Request("id")
  'Response.Write arrdel
  sql="delete from news where id in ("&arrdel&")"
  'Response.Write sql
  conn.Execute sql
  set conn=nothing
  response.write"<SCRIPT language=JavaScript>alert('删除成功!');"
  response.write"javascript:history.go(-1)</SCRIPT>"
  response.end
  %>

呵呵,上面的代码比较简单我也就不多说了。大家可以试试看是否达到我们的预期结果呢?好了,本文只是作者在做WEB开发的过程中积累的一点经验。希望能给你们带来一点帮助。同时也希望大家有什么好的技巧拿出来共享。