| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5609 人关注过本帖
标题:[求助]"删除所选(复选框)"时怎样才能同时删除数据库记录及相关文件 ...
只看楼主 加入收藏
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
结帖率:80%
收藏
 问题点数:0 回复次数:75 
[求助]"删除所选(复选框)"时怎样才能同时删除数据库记录及相关文件

这段代码不知道哪有问题,删除所选时数据库记录删除正确,但所有文件都被删除了,不是相关文件被删除,请教各位大侠:

<!--#include file="conn.asp"-->
<%
id= trim(request("id"))
filename=trim(request("filename"))

if id <> "" or filename <> "" then
fileid = split(id,", ")
for i=0 to ubound(fileid)
if fileid(i) <> "" then
sql="delete from [file] where id="&fileid(i)
conn.execute(sql)
end if
next

filedel = split(filename,", ")
for i=0 to ubound(filedel)
set fso=server.createobject("Scripting.filesystemobject")
if fso.fileexists(server.mappath(""&SavePath&"/"&filedel(i)))=true then
fso.deletefile(server.mappath(""&SavePath&"/"&filedel(i)))
End if
next

end if

response.Redirect("show.asp")
%>

搜索更多相关主题的帖子: 复选 数据库 文件 fileid 
2007-10-03 11:41
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
收藏
得分:0 

我把关联的前一页"show"发出来,大伙儿看看,这一页有没有问题:
<%@ codepage=936 %>
<!--#include file="conn.asp"-->
<%
dim i,intPage,page,pre,last,filepath
set rs = server.CreateObject("adodb.recordset")
sql="select * from file order by ID"
rs.PageSize = 15 //(HacKpp:这里设定每页显示的记录数
rs.CursorLocation = 3
rs.Open sql,conn,0,2,1 //(HacKpp:'这里执行你查询SQL并获得结果记录集
pre = true
last = true
page = trim(Request.QueryString("page"))

if len(page) = 0 then
intpage = 1
pre = false
else
if cint(page) =< 1 then
intpage = 1
pre = false
else
if cint(page) >= rs.PageCount then
intpage = rs.PageCount
last = false
else
intpage = cint(page)
end if
end if
end if
if not rs.eof then
rs.AbsolutePage = intpage
end if
%>

<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>木目ASP文件上传工具(川江号子修改版)</title>
<link rel="stylesheet" href="Data\style.css">
</head>
<SCRIPT language=JavaScript type=text/javascript>
function CheckAll(form) {
for (var i=0;i<form.elements.length;i++) {
var e = form.elements[i];
if (e.name == 'ID'){
e.checked = form.chkall.checked;
}
}
}
</SCRIPT>
<body style="text-align: center">

<div align="center">
<table width="150" border="1" align="center" cellpadding="3" cellspacing="1" bordercolor="#7B96BD" bordercolordark="#FFFFFF">
<tr>
<td height="22" align="center" bgcolor="#7C96B8"><font color="#FFFFFF">上传文件列表</font></td>
</tr>
</table>
<br>
<FORM name=kk action=del.asp method=post>
<table width="650" height="42" border="1" align="center" cellpadding="3" cellspacing="1" bordercolor="#7C96B8" bordercolordark="#FFFFFF">
<TR align="center">
<td width="10%" height="20" bgcolor="#006666" align="center"><font color="#FFFFFF">选择</font></td>
<td width="10%" height="20" bgcolor="#006666" align="center"><font color="#FFFFFF">ID</font></td>
<td width="25%" height="20" bgcolor="#006666" align="center"><font color="#FFFFFF">文件名</font></td>
<td width="20%" height="20" bgcolor="#006666" align="center"><font color="#FFFFFF">文件大小</font></td>
<td width="25%" height="20" bgcolor="#006666" align="center"><font color="#FFFFFF">上传时间</font></td>
</tr>
<%if rs.EOF or rs.BOF then
response.write "<TR><td colspan=10 height=20><div align=center>暂时还没有任何上传文件</div></td></TR>"
end if
%>
<%
for i=1 to rs.PageSize
if rs.EOF or rs.BOF then exit for
%>
<tr align=center>
<input type=hidden name=filename value=<%=rs("filename")%> />
<td width="10%" height="20" align="center"><input type=checkbox name=ID id=id value=<%=rs("id")%> /></td>
<td width="10%" height="20" align="center"><%=rs("ID")%></td>
<td width="25%" align="center"><%=rs("fileName")%></td>
<td width="20%" align="center"><%=Split(Rs("contentlen"),".")(0)%>&nbsp;KB</td>
<td width="25%" align="center"><%=rs("uptime")%></td>
</tr>
<%
rs.movenext
next
%>
</table>
<p><DIV class=bottom><INPUT onclick=CheckAll(this.form) type=checkbox value=on
name=chkall> 全选&nbsp;&nbsp;<INPUT class=button onClick="if(confirm('删除后将不能恢复!您确定要删除吗?'))form.submit()" type=button value=删除所选></DIV> </p></FORM>
<center>

<table width="650" border="0" cellpadding="3" cellspacing="1" borderColorLight=#808080 borderColorDark=#ffffff>
<tr>
<%if rs.pagecount > 0 then%>
<td width="13%" align="left">当前页<%=intpage%>/<%=rs.PageCount%></td>
<%else%>
<td width="40%" align="left">当前页0/0</td><%end if%>
<td width="47%" align="right"> <a href="Show.asp?page=1">首页</a>|
<%if pre then%>
<a href="Show.asp?page=<%=intpage -1%>">上页</a>| <%end if%>
<%if last then%>
<a href="Show.asp?page=<%=intpage +1%>">下页</a> |<%end if%>
<a href="Show.asp?page=<%=rs.PageCount%>">尾页</a>|转到第
<select name="sel_page" onChange="javascript:location=this.options[this.selectedIndex].value;">
<%
for i = 1 to rs.PageCount
if i = intpage then%>
<option value="Show.asp?page=<%=i%>" selected><%=i%></option>
<%else%>
<option value="Show.asp?page=<%=i%>"><%=i%></option>
<%
end if
next
%>
</select>页</font>
</td>
</tr>
</table>
<p>&nbsp;</p>
<p><a href="upload.asp" target="_self"><font color="#0000FF">[返回上传页]</font></a>  <a href="mdbzip.asp" target="_self"><font color="#0000FF">[压缩数据库]</font></a></p>
</center>
</div>
</body>

</html>


[此贴子已经被作者于2007-10-3 16:06:49编辑过]


          人人为我,我为人人!
2007-10-03 11:41
shaoli4261
Rank: 3Rank: 3
来 自:安徽.巢湖
等 级:新手上路
威 望:6
帖 子:212
专家分:0
注 册:2007-9-11
收藏
得分:0 

<%
Num=request.form("DelID").count
if Num=0 then
Response.Write"<script language='javascript'>alert('请选择你所要删除的信息,请返回!');window.location.href('hpgl.asp');</script>"
Response.End
end if
set conn=server.CreateObject("adodb.connection")
conn.open"driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("database/info.mdb")
for i=1 to Num
bianma=request.form("DelID")(i)
set rs=Server.CreateObject("adodb.Recordset")
sql="Select * from hpjl where bianma='"&bianma&"'"
rs.open sql,conn,1,3
if not rs.eof then
rs.delete()
rs.update()
else
Response.Write "<script language='javascript'>alert('请选择的信息删除失败,请返回!');window.back();</script>"
Response.End
end if
next
Response.Write"<script language='javascript'>alert('成功将选定信息删除');window.location.href('hpgl.asp');</script>"
Response.End
rs.close
set rs=nothing
conn.close
set conn=nothing
%>

[此贴子已经被作者于2007-10-3 13:31:05编辑过]


爱一个人,不一定拥有她,但拥有一个人,就要爱她。也许她不是最好的,但她可能是你最值得的珍惜的人。
2007-10-03 13:27
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
收藏
得分:0 

谢谢老兄帮忙,但你这段代码只能清除数据库里的记录,我想同时删除上传的文件,代码应该是怎样的呢?我的代码删除数据库记录没有问题的,就是想两种功能同时进行,对上传文件进行有效的管理.可能要用到FSO,循环删除

[此贴子已经被作者于2007-10-3 14:33:29编辑过]


          人人为我,我为人人!
2007-10-03 14:25
hmhz
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:30
帖 子:1890
专家分:503
注 册:2006-12-17
收藏
得分:0 
<%
Num=request.form("DelID").count
if Num=0 then
Response.Write"<script language='javascript'>alert('请选择你所要删除的信息,请返回!');window.location.href('hpgl.asp');</script>"
Response.End
end if
set conn=server.CreateObject("adodb.connection")
conn.open"driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("database/info.mdb")
for i=1 to Num
bianma=request.form("DelID")(i)
set rs=Server.CreateObject("adodb.Recordset")
rs.open "Select * from hpjl where bianma='"&bianma&"'",conn,1,3
if not rs.eof then
rs.delete()
rs.update()
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
if FSO.FileExists(Server.MapPath("inc/"&bianma&".asp")) then
FSO.DeleteFile Server.MapPath("inc/"&bianma&".asp"),True 'FSO文件删除
end if
else
Response.Write "<script language='javascript'>alert('请选择的信息删除失败,请返回!');window.back();</script>"
Response.End
end if
next
Response.Write"<script language='javascript'>alert('成功将选定信息删除');window.location.href('hpgl.asp');</script>"
Response.End
rs.close
set rs=nothing
conn.close
set conn=nothing
%>

[编程论坛] ASP超级群:49158383  敲门暗号:ASP编程
龍艺博客 http://www.
2007-10-03 14:34
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
收藏
得分:0 
谢谢版主!
不过,问题没解决,还需麻烦你.
我把源码传上来,这是一个简单的上传管理源码,我自己修改的,增加了数据库,就是删除怎么也弄不明白了,show.asp是显示页,有复选框,可全选,然后删除所选,我的想法是:数据库记录删除的同时删除与记录相关的文件(包括rar\gif等文件),就像有的论坛管理"上传文件"那样.
请帮我改改.
filedel.asp是删除转向页,完成删除功能.也不知show.asp没有有问题.
总之,麻烦版主及各位大虾了,要不我寝食难安!!


fLucCjIE.rar (121.71 KB) [求助]"删除所选(复选框)"时怎样才能同时删除数据库记录及相关文件


[此贴子已经被作者于2007-10-3 15:16:22编辑过]


          人人为我,我为人人!
2007-10-03 15:04
shaoli4261
Rank: 3Rank: 3
来 自:安徽.巢湖
等 级:新手上路
威 望:6
帖 子:212
专家分:0
注 册:2007-9-11
收藏
得分:0 
呵呵…………   我现在正在研究和你一样的问题,怎么能同时删除数据库里的信息和服务器上的文件,我的办法的用文件名删除。

爱一个人,不一定拥有她,但拥有一个人,就要爱她。也许她不是最好的,但她可能是你最值得的珍惜的人。
2007-10-03 15:27
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 

楼注1楼提供的时哪个页面的代码?

2007-10-03 15:29
月夜
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2007-9-5
收藏
得分:0 
对 我做到了 是文件名删除 删除数据库的同时删除对应的文件名
方法就是删除数据库不用说了 根据ID 或者间接查询或传递判断条件来确认要删除哪一条
确认了删除数据库了 不要急 在下边写上一段很简短的代码 来删除对应文件
代码如下:
set fso=CreateObject("Scripting.FileSystemObject")
whichfile=server.mappath(""&n&"")
Set thisfile = fso.GetFile(whichfile)
thisfile.Delete True
n 表示文件名 文件名怎么得来? 你要这么问我就杀了你然后再自杀
然后是上边查询数据库 删除文件时附给的值啦

自己写整站 累死个王八蛋
2007-10-03 15:32
thbwn
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
收藏
得分:0 
1楼提供的是filedel.asp删除功能页

          人人为我,我为人人!
2007-10-03 15:56
快速回复:[求助]"删除所选(复选框)"时怎样才能同时删除数据库记录及相关文件 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035682 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved