主题:  这样的删除对吗?可以删除记录而系统报错是什么原因啊

林易

职务:普通成员
等级:3
金币:1.0
发贴:750
注册:2002/6/6 13:52:11
#12004/7/29 17:25:49
lbfl.asp
<!--#include file="conn.asp"-->
<!--#include file="pass.asp"-->
<link href="images/css.css" rel="stylesheet" type="text/css">

<%
typeid=request("typeid")
dim keyword
keyword=request("keyword")
Set filmtype= Server.CreateObject("ADODB.Recordset")
strSql="select * from type "
filmtype.open strSql,Conn,1,1
%>
<script language="JavaScript">
<!--
function  validate()
{

if  (document.myform.type.value=="")
{
alert("新加类型不能为空");
document.myform.type.focus();
return false ;
}
}

function cform(){
if(!confirm("你是否确认删除该类型?"))
return false;

}
-->
</script>
<link href="images/css.css" rel="stylesheet" type="text/css">
<center>
  <TABLE border="0" cellspacing="0" cellpadding="0" width=36% align=center>
    <TR bordercolor="#007db5" bgcolor="#007db5"> 
      <TD height=20 colspan=3 align=center><font color="#FFFFFF">设备类别管理</font></TD>
    </TR>
    <%if filmtype.eof and filmtype.bof then
response.write "<font color='red'>还没有任何类别</font>"
else
do while not (filmtype.eof or filmtype.bof)
%>
    <FORM METHOD=POST ACTION="etype.asp">
      <tr> 
        <td width="149">
<INPUT TYPE="text" value="<%=filmtype("type")%>" name=type style="font-size:9pt;background-color:#007db5;border: 1px solid #000000;color:#FFFFFF" size=13>
        <INPUT TYPE="hidden" name=id value=<%=filmtype("typeid")%>> </td>
        <td width="40" align=center>
		<INPUT TYPE="submit" name="edit" value="修改" style="border:1pt solid #636563;font-size:9pt; LINE-HEIGHT: normal;HEIGHT: 18px;"> 
        </td>
        <td width="63"> 
        <INPUT TYPE="submit" name="del" value="删除" style="border:1pt solid #636563;font-size:9pt; LINE-HEIGHT: normal;HEIGHT: 18px;" onclick="return cform();"> 
        </td>
      </tr>
    </FORM>
    <%filmtype.movenext
loop
end if%>
    <FORM METHOD=POST ACTION="etype.asp" name=myform>
      <tr> 
        <td colspan=3>新类别:
          <INPUT TYPE="text" size=10 NAME="type" style="font-size:9pt;background-color:#007db5;border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000"> 
          <INPUT TYPE="submit" name="add" value="增加" style="border:1pt solid #000000;font-size:9pt; LINE-HEIGHT: normal;HEIGHT: 18px;" onclick="return  validate()"> 
        </td>
      </tr>
    </form>
  </TABLE>
<TABLE border="0" cellspacing="0" cellpadding="0" width=36% align=center>
<%

Set cs= Server.CreateObject("ADODB.Recordset")
csSql="select * from cstype "
cs.open csSql,Conn,1,1
%>

    <TR bordercolor="#007db5" bgcolor="#007db5"> 
      <TD height=20 colspan=3 align=center><font color="#FFFFFF">
        
      生产厂商管理</font></TD>
    </TR>
    <%if cs.eof and cs.bof then
response.write "<font color='red'>还没有任何类别</font>"
else
do while not (cs.eof or cs.bof)
%>
    <FORM METHOD=POST ACTION="csetype.asp">
      <tr> 
        <td width="149"> <INPUT TYPE="text" value="<%=cs("cstype")%>" name=type2 style="font-size:9pt;background-color:#007db5;border: 1px solid #000000;color:#ffffff" size=13> 
          <INPUT TYPE="hidden" name=id2 value=<%=cs("cstypeid")%>> </td>
        <td width="40" align=center> <INPUT TYPE="submit" name="edit2" value="修改" style="border:1pt solid #636563;font-size:9pt; LINE-HEIGHT: normal;HEIGHT: 18px;"> 
        </td>
        <td width="63"> <INPUT TYPE="submit" name="del2" value="删除" style="border:1pt solid #636563;font-size:9pt; LINE-HEIGHT: normal;HEIGHT: 18px;" onclick="return cform();"> 
        </td>
      </tr>
    </FORM>
    <%cs.movenext
loop
end if%>
    <FORM METHOD=POST ACTION="csetype.asp" name=myform2>
      <tr> 
        <td colspan=3>新类别: 
          <INPUT TYPE="text" size=10 NAME="type2" style="font-size:9pt;background-color:#666666;border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000"> 
          <INPUT TYPE="submit" name="add2" value="增加" style="border:1pt solid #000000;font-size:9pt; LINE-HEIGHT: normal;HEIGHT: 18px;" > 
        </td>
      </tr>
    </form>
  </TABLE>
  </center>



etype.asp
<!--#include file="conn.asp"-->

<!--#include file="angel.inc"-->
<%

set rs=server.createobject("adodb.recordset")
if request("add")<>"" then
call newfilm()
elseif request("edit")<>"" then
call editfilm()
else
call delfilm()
end if
sub newfilm()
sql="select * from type where (typeid is null)"
rs.open sql,conn,1,3
rs.addnew
rs("type")=request("type")
rs.update
end sub
sub editfilm()
sql="select * from type where typeid="&request("id")
rs.open sql,conn,1,3
rs("type")=request("type")
rs.update
end sub
sub delfilm()
sql="DELETE * from type where typeid="&request("id")
rs.open sql,conn,1,3
rs.update
end sub

rs.close
set rs=nothing
conn.close
set conn=nothing

Response.Redirect("angel.asp")

%>



今晚在线

职务:普通成员
等级:3
金币:1.0
发贴:761
注册:2001/8/8 19:12:36
#22004/7/29 21:47:10
sql="DELETE * from type where typeid="&request("id")
rs.open sql,conn,1,3
rs.update

换成
sql="DELETE * from type where typeid="&request("id")
conn.execute(sql)



林易

职务:普通成员
等级:3
金币:1.0
发贴:750
注册:2002/6/6 13:52:11
#32004/7/31 11:40:36
谢谢,但是在执行的时候有时候是对没有报错



mlzboy

职务:普通成员
等级:2
金币:2.0
发贴:317
注册:2003/8/10 10:49:42
#42004/7/31 14:53:35
今晚在线在上个帖子中说
引用:
sql="DELETE * from type where typeid="&request("id"
rs.open sql,conn,1,3
rs.update

换成
sql="DELETE * from type where typeid="&request("id"
conn.execute(sql)



上面这种方法为什么会报错呢,是对的啊



林易

职务:普通成员
等级:3
金币:1.0
发贴:750
注册:2002/6/6 13:52:11
#52004/8/2 9:04:08
rs.close
set rs=nothing
conn.close
set conn=nothing

Response.Redirect("angel.asp")

抱错了,不知道是什么回师



浮尘

职务:普通成员
等级:3
金币:7.0
发贴:1258
注册:2001/11/19 12:41:09
#62004/8/4 0:06:15
执行
sql="DELETE * from type where typeid="&request("id")
conn.execute(sql)
时,不用设定rs



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#72004/8/4 2:27:55
林易在上个帖子中说
引用:
rs.close
set rs=nothing
conn.close
set conn=nothing

Response.Redirect("angel.asp")

抱错了,不知道是什么回师


rs是在sub中定义的,是局部变量,而最后rs是全局的,与开始rs变不是一回事。所以全局的rs并没有打开,所以关闭要出错。可在最前加dim rs看看。


非常大鱼

林易

职务:普通成员
等级:3
金币:1.0
发贴:750
注册:2002/6/6 13:52:11
#82004/8/6 14:18:49
好谢谢,我明白了