数据删除前的判断,该如何解决

数据删除前的判断

If Request("check") <> "" Then

    Set rs = Server.CreateObject("adodb.recordset")
    rs.open "select *  FROM d_store WHERE d_id in (" & Request("check") & ")",conn,1,3

    If rs("d_aud") = 0 Then

        DelStr = "DELETE FROM d_store WHERE d_id in (" & Request("check") & ")"
        conn.execute DelStr

        Response.Write "<script language='javascript'>alert('删除成功');</script>"
      

    Else
        Response.Write "<script language='javascript'>alert('不能删除');</script>"


    End If

    rs.Close
    Set rs = Nothing

End If


上面代码,可以对单个数据进行删除前的判断,如果提交过来是一组数据,就判断失败。

如果要判断传递过来的一组id,对应的rs("d_aud") = 0都等于0才能删除,应该怎么修改。
------解决思路----------------------
引用:
Quote: 引用:

sql增加d_aud=0的判断就行了。。这样就只删除d_aud=0的记录,其他的不能删除

If Request("check") <> "" Then
        DelStr = "DELETE FROM d_store WHERE d_id in (" & Request("check") & ") and d_aud=0"
        conn.execute DelStr
        Response.Write "<script language='javascript'>alert('删除成功');</script>"
End If


不好意思,可能是我的意思没表达清楚,当提交的一组数据,其中有一个不满足要求,就都不能删除。

全部满足要求,才能删除。

那你要改变下思路,判断d_aud=1的记录数>0就说明有不满足的记录,

If Request("check") <> "" Then
 
    Set rs = Server.CreateObject("adodb.recordset")
    rs.open "select count(*)  FROM d_store WHERE d_id in (" & Request("check") & ") and d_aud=1",conn,1,3'统计id中是否存在d_aud=1的记录
 
    If rs(0) = 0 Then '不存在
        DelStr = "DELETE FROM d_store WHERE d_id in (" & Request("check") & ")"
        conn.execute DelStr
 
        Response.Write "<script language='javascript'>alert('删除成功');</script>"
       
 
    Else
        Response.Write "<script language='javascript'>alert('不能删除');</script>"
 
 
    End If
 
    rs.Close
    Set rs = Nothing
 
End If

------解决思路----------------------
If Request("check") <> "" Then
 
    Set rs = Server.CreateObject("adodb.recordset")
    rs.open "select count(1) as c FROM d_store WHERE d_id in (" & Request("check") & ") and d_aud<>0",conn,1,3
 
    If rs("c") = 0 Then
 
        DelStr = "DELETE FROM d_store WHERE d_id in (" & Request("check") & ")"
        conn.execute DelStr
 
        Response.Write "<script language='javascript'>alert('删除成功');</script>"
       
 
    Else
        Response.Write "<script language='javascript'>alert('不能删除');</script>"
 
 
    End If
 
    rs.Close
    Set rs = Nothing
 
End If