حذف (ADO Delete)
اینجا «حذف رکورد ADO» را می بینیم. «DELETE» یعنی پاک کردن سطر. «رکورد (Record)» یک سطر جدول است. مثل حذف نام یک دانش آموز از دفتر کلاس.
نمایش رکوردها و دکمه حذف
اول همه رکوردها فهرست می شوند. سپس برای هر سطر، یک دکمه گذاشته می شود تا شناسه همان رکورد ارسال شود.
<html>
<body>
<%
Dim conn
Dim rs
Dim x
Set conn = Server.CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM customers", conn
%>
<h2>List Database</h2>
<table border="1" width="100%">
<tr>
<% For Each x In rs.Fields %>
<th><%= UCase(x.Name) %></th>
<% Next %>
</tr>
<% Do Until rs.EOF %>
<tr>
<form method="post" action="demo_delete.asp">
<% For Each x In rs.Fields %>
<% If x.Name = "customerID" Then %>
<td>
<input type="submit" name="customerID" value="<%= x.Value %>" />
</td>
<% Else %>
<td><%= x.Value %></td>
<% End If %>
<% Next %>
</form>
<% rs.MoveNext %>
</tr>
<% Loop %>
<%
conn.Close
%>
</table>
</body>
</html>
تأیید و حذف رکورد با DELETE
پس از کلیک روی شناسه، صفحه حذف باز می شود. ابتدا رکورد را نشان می دهد. سپس با دکمه حذف، فرمان DELETE اجرا می شود.
<html>
<body>
<h2>Delete Record</h2>
<%
Dim conn
Dim rs
Dim cid
Dim sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
cid = Request.Form("customerID")
If Request.Form("companyname") = "" Then
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM customers WHERE customerID='" & cid & "'", conn
%>
<form method="post" action="demo_delete.asp">
<table>
<% For Each x In rs.Fields %>
<tr>
<td><%= x.Name %></td>
<td><input name="<%= x.Name %>" value="<%= x.Value %>" /></td>
</tr>
<% Next %>
</table>
<br /><br />
<input type="submit" value="Delete record" />
</form>
<%
Else
sql = "DELETE FROM customers "
sql = sql & "WHERE customerID='" & cid & "'"
On Error Resume Next
conn.Execute sql
If Err <> 0 Then
Response.Write "No update permissions!"
Else
Response.Write "Record " & cid & " was deleted!"
End If
End If
conn.Close
%>
</body>
</html>
گام های عملی سریع
- رکوردها را فهرست کن و شناسه را ارسال کن.
- رکورد انتخابی را برای تأیید نمایش بده.
- با WHERE دقیق، فرمان DELETE را اجرا کن.
- پیام نتیجه را نشان بده و اتصال را ببند.
نکته: «WHERE» رکورد هدف را مشخص می کند. بدون آن، همه رکوردها حذف می شوند.
هشدار: ورودی ها را پاک سازی کن تا تزریق SQL رخ ندهد. همیشه حذف را دوباره تأیید کن.
برای ادامه مسیر، به به روزرسانی ADO و دستورهای ADO سر بزن. همچنین صفحه حذف رکورد ADO را نشانه گذاری کن.
جمع بندی سریع
- DELETE یعنی پاک کردن رکورد.
- WHERE را فراموش نکن.
- قبل از حذف، نمایش و تأیید کن.
- ورودی ها را امن سازی کن.
- بعد از عملیات، اتصال را ببند.