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太多了,等修改完畢後,會在提供給大家做參考。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 sleepingwolf 的頭像
    sleepingwolf

    【開源節流】--> "開源" & "節流"

    sleepingwolf 發表在 痞客邦 留言(0) 人氣()