ASP刪除多筆資料並同時刪除多筆檔案製作教學
來源:http://www.dreamweaver.com.tw/forumDetail.asp?main_id=8531
最近常常收到詢問要如何製作刪除資料又同時刪除檔案的方式,之前PO過的方式絕對可行,不能執行的原因有很多,請查閱相關書籍;但希望在此學習的朋友們,能多多分享自己的製作心得。
從去年就有PO一篇刪除檔案的教學,有褒有貶,好不好用在於個人,但請製作成功的朋友,能多加動點腦筋去利用它製作更多不同的方式,不要太過依賴別人給你的東西,不然這樣是學不到什麼的;常常收到的那些信件中,也有詢問如何刪除多筆資料與檔案,因為本人工作還有課業繁忙,一直沒有時間去做這些東西,因為詢問的人實在太多了,小弟利用空餘的時間製作一個範例分享給大家。
再這裏教導各位如何利用checkbox的方式,選擇要刪除的資料與同時刪除其相關的檔案,可多選刪除,請按照步驟做即可!如下:
步驟一:
(1)建立利用checkbox方式選擇刪除的test_index.asp頁面,製作方式請參照茶米大哥的『Dreamweaver MX for ASP』第10-35頁或『Dreamweaver MX for ASP 修訂版』第10-36頁的教學(請多支持茶米大哥的著作喔!),只要做那個頁面就好了,刪除頁面另外說明。
(2)請將checkbox的名稱改為deldata,傳遞記錄檔案名稱的欄位名稱,我預設的是d_name。
(3)在送出按鈕設計一段語法(onClick部分)以防不小心按錯誤刪。如下:
<input type="submit" name="Submit" onClick="return(confirm('您確定刪除嗎?'))" value="送出">
步驟二:
(1)製作一個test_del.asp的頁面,什麼都不用設定。
(2)將下列的程式片段貼到該頁面上即可。
<%
'開啟資料庫,這裡不用我多加敘述了吧
set conn = server.CreateObject("adodb.connection")
DBPath = Server.MapPath ("xianzubbs.mdb") '資料庫路徑與名稱,記得要改成自己的
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &DBPath
Trim(request("deldata")) '接收由test_index.asp頁面傳送過來deldata的資料
arrdel = split(request("deldata"),",") '宣告arrdel變數,使其接收多筆的資料變成陣列
for i = 0 to Ubound(arrdel) '迴圈開始,用Ubound函數,取出陣列最大值
sql = "delete from data_all where d_name = '" & Trim(arrdel(i)) & "'" '刪除資料表資料內容
conn.execute(sql)
Source = Server.MapPath("/bbs/data/"&Trim(arrdel(i))) '用虛擬路徑取得檔案位置與檔案名稱
Set fs = CreateObject ("Scripting.FileSystemObject")
fs.DeleteFile Source ,Ture '開始刪除檔案
Set fs = Nothing
next '迴圈結束
%>
<meta http-equiv="refresh" content="2;URL=test_index.asp"> '兩秒後重新導回test_index.asp頁面
<div align="center">刪除成功!</div>
=========我是分隔線=========
這個方式可以做到刪除多筆資料同時也刪除多筆相關的檔案,不過這樣的方式不是很好,因為不是用關鍵欄位數值的資料來做參數傳遞,是用文字型態來做參數傳遞,我並沒有用中文檔名來測試,英文檔名可以確實刪除。
小弟的功力不強,只會土法煉鋼,寫的有點亂有點雜,如過各位不介意的話小弟拙劣的功力的話,歡迎使用,或是有更好的方式與做法,也歡迎一起討論,一起分享各位的製作心得。
註:小弟最近在修改之前製作的論壇http://wu.rouza.com/,因為BUG太多了,等修改完畢後,會在提供給大家做參考。
留言列表