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

网络整理 - 07-26
在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 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="删除" 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开发的过程中积累的一点经验。希望能给你们带来一点帮助。同时也希望大家有什么好的技巧拿出来共享。