ADO 删除记录
🌙
手机阅读
本文目录结构
ADO 删除记录
我们可使用 SQL 的 DELETE 命令来删除数据库表中的某条记录。
删除表中的记录
我们希望删除 Northwind 数据库的 Customers 表中的一条记录。首先我们需要创建一个表格,来列出 Customers 中的所有记录。
<html>
<body>
<%
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
response.write("<th>" & ucase(x.name) & "</th>")
next
%>
</tr>
<% do until rs.EOF %>
<tr>
<form method="post" action="demo_delete.html">
<%
for each x in rs.Fields
if x.name="customerID" then%>
<td>
<input type="submit" name="customerID" value="<%=x.value%>">
</td>
<%else%>
<td><%Response.Write(x.value)%></td>
<%end if
next
%>
</form>
<%rs.MoveNext%>
</tr>
<%
loop
conn.close
%>
</table>
</body>
</html>
假如用户点击 “customerID” 列中的按钮,会打开新文件 “demo_delete.asp”。此文件包含了创建输入域的源代码,这些输入域基于数据库中记录的字段,同时也含有一个删除当前记录的"删除按钮":
<html>
<body>
<h2>Delete Record</h2>
<%
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.html">
<table>
<%for each x in rs.Fields%>
<tr>
<td><%=x.name%></td>
<td><input name="<%=x.name%>" value="<%=x.value%>"></td>
<%next%>
</tr>
</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>
处理“删除”按钮的单击事件,删除列表框中被选中的列表项
void CUseAdoDlg::OnButdel()
{
int pos = m_Grid.GetSelectionMark(); //获得当前选中列表项索引
ADO m_Ado; //声明ADO类对象
m_Ado.OnInitADOConn(); //连接数据库
CString sql = "select * from employees"; //设置查询字符串
m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql); //打开记录集
try
{
m_Ado.m_pRecordset->Move(pos,vtMissing); //将记录集指针移动到选中的记录
m_Ado.m_pRecordset->Delete(adAffectCurrent); //删除选中的记录
m_Ado.m_pRecordset->Update(); //更新记录集
m_Ado.CloseRecordset(); //关闭记录集
m_Ado.CloseConn(); //断开数据库连接
}
catch(...) //捕捉可能出现的错误
{
MessageBox("操作失败"); //弹出错误提示
return;
}
MessageBox("删除成功"); //提示操作成功
OnButclear(); //清空编辑框中数据
m_Grid.DeleteAllItems(); //删除列表控件
AddToGrid(); //向列表中插入数据
}