注册 登录
编程论坛 ASP技术论坛

【求助】选中复选框-删除数据库记录同时删除相应的图片

jeonlee 发布于 2011-03-28 11:43, 1078 次点击
各位朋友 请帮小弟解决一个问题,感激不尽!!在此先谢过。

复选框选中其中一项



具体执行 删除记录代码如下:
sub delall_links()
    if request("id")="" or isnull(request("id")) then
    response.write "<script language='javascript'>"
    response.write "alert('操作失败,您什么也没有选择。');"
    response.write "location.href='javascript:history.go(-1)';"                           
    response.write "</script>"   
    response.end
    else
              set rs=server.createobject("adodb.recordset")
              sql="select * from huandeng where id="&request("id")
              rs.open sql,conn,3,2   
              id=trim(request( "id "))
              imgpath=trim(request( "title "))   
              response.Write(imgpath&id)
              Set FSO = Server.CreateObject("Scripting.FileSystemObject")
              if fso.FileExists(imgpath) then
              FSO.deletefile Server.MapPath(imgpath),true
              set fso=nothing
                  rs.delete
                  rs.update
                  rs.close
              set rs=nothing
                 conn.execute("delete from huandeng where id="&id)
              set conn=nothing
              end if                  
        if err.number<>0 then '错误处理
            response.write "数据库操作失败:" & err.description
            err.clear
        else        
         response.write "<script language=javascript>alert('所选链接已被删除。');location.href='zhinan.asp';</script>"
        end if
    end if
end sub


这段代码点选中一个复选框 点删除按钮后  弹出对话框 所选链接已删除。。。可是数据 图片都没被删除。。。。。

在线 求解!!!!  感谢给位 程序高手指教!
12 回复
#2
jeonlee2011-03-28 11:45
数据库只记录了图片路径 如:image/20055110.jpg
我想实现删除数据库记录同时-删除图片文件。。。
#3
dzt00012011-03-28 17:33
if fso.FileExists(Server.MapPath(imgpath)) then

另外,conn.execute("delete from huandeng where id="&id) 这句前面已经rs.delete,应该不用了吧
#4
jeonlee2011-03-29 13:56
以下是引用dzt0001在2011-3-28 17:33:24的发言:

if fso.FileExists(Server.MapPath(imgpath)) then

另外,conn.execute("delete from huandeng where id="&id) 这句前面已经rs.delete,应该不用了吧
sub delall_links()
    if request("id")="" or isnull(request("id")) then
    response.write "<script language='javascript'>"
    response.write "alert('操作失败,您什么也没有选择。');"
    response.write "location.href='javascript:history.go(-1)';"                           
    response.write "</script>"   
    response.end
    else
              set rs=server.createobject("adodb.recordset")
              sql="select * from huandeng where id="&request("id")
              rs.open sql,conn,3,2   
              id=trim(request( "id "))
              imgpath=trim(request( "title "))   
              response.Write(imgpath&id)
              Set FSO = Server.CreateObject("Scripting.FileSystemObject")
            
              if fso.FileExists(Server.MapPath(imgpath)) then
              FSO.deletefile Server.MapPath(imgpath),true
              set fso=nothing
                  rs.delete
                  rs.update
                  rs.close
              set rs=nothing
                 set conn=nothing
              end if                  
        if err.number<>0 then '错误处理
            response.write "数据库操作失败:" & err.description
            err.clear
        else        
         response.write "<script language=javascript>alert('所选链接已被删除。');location.href='zhinan.asp';</script>"  
        end if
    end if
end sub

首先,非常感谢3楼哥哥,修改后还是存在问题。。。。

还是不行。选中复选框  然后点删除,,,。后。。。没任何提示。。。也没打开指定页面"zhinan.asp",说明没执行到红色部分。。
各位朋友 帮小弟 看看代码哪里还有问题。。。

#5
jeonlee2011-03-29 14:36
sub delall_links()
    if request("id")="" or isnull(request("id")) then
    response.write "<script language='javascript'>"
    response.write "alert('操作失败,您什么也没有选择。');"
    response.write "location.href='javascript:history.go(-1)';"                           
    response.write "</script>"   
    response.end
    else
              set rs=server.createobject("adodb.recordset")
              sql="select * from huandeng where id="&request("id")
              rs.open sql,conn,3,2   
              img=rs( "img")   
              Set FSO = Server.CreateObject("Scripting.FileSystemObject")
           if fso.FileExists(Server.MapPath("/"&img)) then
              FSO.deletefile Server.MapPath("/"&img),true
              set fso=nothing
                  rs.delete
                  rs.update
                  rs.close
              set rs=nothing
                 set conn=nothing
              end if                  
        if err.number<>0 then '错误处理
            response.write "数据库操作失败:" & err.description
            err.clear
        else        
         response.write "<script language=javascript>alert('所选链接已被删除。');location.href='zhinan.asp';</script>"
        end if
    end if
end sub


经研究。。。现··可实现 单选项的删除(数据记录 及文件)。。。。如果是多选 代码应该怎么改呢。????  谢谢给位!1!1帮帮忙想一下。。感激不尽!
#6
dzt00012011-03-29 14:49
多选的话,SQL语句要改改了,要用in,再遍历记录集
#7
jeonlee2011-03-29 14:58
  能知道一下吗?????

  谢谢你!
#8
jeonlee2011-03-29 15:00
能 帮我改一下 代码吗?????  感激不尽!!!!!
#9
dzt00012011-03-29 15:57
稍微改了改,看看能不能运行,和前面回复的不一样
sub delall_links()
    if request("id")="" or isnull(request("id")) then
    response.write "<script language='javascript'>"
    response.write "alert('操作失败,您什么也没有选择。');"
    response.write "location.href='javascript:history.go(-1)';"                           
    response.write "</script>"   
    response.end
    else

        for each ho in request("id")
    ho=int(ho)
   
              set rs=server.createobject("adodb.recordset")
              sql="select * from huandeng where id="&ho
              rs.open sql,conn,3,2   
              img=rs( "img")   
              Set FSO = Server.CreateObject("Scripting.FileSystemObject")
           if fso.FileExists(Server.MapPath("/"&img)) then
              FSO.deletefile Server.MapPath("/"&img),true
              set fso=nothing
                  rs.delete
                  rs.update
                  rs.close
              set rs=nothing
                 set conn=nothing
              end if

    next

        if err.number<>0 then '错误处理
            response.write "数据库操作失败:" & err.description
            err.clear
        else        
         response.write "<script language=javascript>alert('所选链接已被删除。');location.href='zhinan.asp';</script>"
        end if
    end if
end sub
#10
jeonlee2011-03-29 16:04
不行,选择2项  删除了前一项。 后。。。没任何提示。。。也没打开指定页面"zhinan.asp",
#11
jeonlee2011-03-29 16:05
也相当于 单项删除
#12
dzt00012011-03-29 16:24
将set conn=nothing 删除
很多时候,写代码都是一点点的改,因为一下子看不出来问题


[ 本帖最后由 dzt0001 于 2011-3-29 16:25 编辑 ]
#13
jeonlee2011-03-29 16:26
好的。我先试试。。。
1