asp 基础操作之增删改查

在这里插入图片描述

 <%@Language="vbscript" Codepage="65001"   %> 	<!-- 中文显示 -->
 
 <!-- 连接数据库 -->
<%
dim conn
set conn = server.CreateObject("ADODB.connection")
conn.open "driver={MySQL ODBC 8.0 ANSI Driver};server=127.0.0.1; uid=root;pwd=weicunbin123;database=lendbook"
'  response.write conn.state '是否连接成功 
 %>
 
 <!-- 增加--修改--删除 -- 相当于接口-->
 <%
	dim action,id,title,sql
	action = request.queryString("action")
	id = request.queryString("id")
	title = request.queryString("title")
	if action = "update" then
		'改
		on error resume next 'Err对象保存了“错误信息”
		sql = "update  a_book_info set  title = '"&title&"'  where info_id = "&id&""
		set res =  conn.execute(sql)
	
		if Err.number = 0 then
			' response.Write("<script>alert('数据修改成功');window.history.back()</script>")
			call successFn("修改")
		else
			call errFn("数据修改失败或未修改")
		end if
	 
	elseif   action="del" then
		'删
		on error resume next 'Err对象保存了“错误信息”
		sql = "delete from a_book_info where info_id = "&id&""
		set res =  conn.execute(sql)
		if Err.number = 0 then
			call successFn("删除")
		else
			call errFn("数据删除失败")
		end if
	elseif action="add" then
		' 增
		on error resume next 'Err对象保存了“错误信息”
		sql = "insert into a_book_info(`title`) values('"&title&"')"
		set res =  conn.execute(sql)
		if Err.number = 0 then
			call successFn("插入")
		else
			call errFn("数据插入失败")
		end if
	end if
	
	
	' 函数定义
	sub successFn(title)
		response.Write("<script>alert('数据"&title&"成功');window.history.back()</script>")
	end sub
	sub errFn(title)
		errMessage = "错误号:"&Err.Number & chr(10) & "错误来源:"&Err.Source & chr(10)&"错误描述:"&Err.Description & chr(10)
		response.Write(errMessage)
		response.Write("<script>alert('"&title&",页面未跳转');</script>")
	end sub
 %>
 
 
 <!DOCTYPE html>
 <html lang="en">

 <head>
 	<meta charset="UTF-8">
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<title>asp增删改查</title>
 </head>

 <body>

 	<%
	'查询数据
	Set rs = Server.CreateObject( "ADODB.Recordset" )
	sql = "select * from a_book_info  order by info_id desc limit 0,5"
	rs.open sql,conn,1,3  '(1,1为只读数据,1,3为插入数据,2,3是修改数据)
 
	%>
 
	<table border="1"  style="border-collapse: collapse;">
		<tr>
			<td width="10%">id</td>
			<td width="40%">title</td>
			<td width="10%">操作</td>
		</tr>
		<%
			if (rs.EOF and rs.BOF) then
					'1、BOF 和 EOF 属性返回bai布尔型值。 
					'2、BOF 当前指针的位置是在第一行记录之前,则... EOF 当前指针的位置是在最后一行记录之后,则...
					'3、那么这句话的意思就是:如果 rs没有结束并且没有开始(表示在文本排列中),则满足条件,即没有这个数据
				response.write "no this daata"
			else
				' 遍历数据开始
				do while not rs.eof '如果指针不再最后一行
				
					' 打印到页面上
					' 第一种方式
					%>
						<tr>
							<td><%=rs("info_id")%></td>
							<td><input style="width: 100%; height: 100%;border: none; outline-color:red;" type="text" name="<%=rs("info_id")%>" value="<%=rs("title")%>"></td>
							<td><a href="?action=del&id=<%=rs("info_id")%>">删除</a> <a name="btn_<%=rs("info_id")%>" onclick="update(this)">确认修改</a></td>
						 
						</tr>
					<%
					' 第二种方式
					' response.write "<tr>"
					' response.write "<td>"&rs("info_id")&"</td>"
					' response.write "<td>"&rs("title")&"</td>"
					' response.write "<td> <a href='?action=del&info_id="&rs("info_id")&"'>删除</a>  <a href='?action=updata&info_id="&rs("info_id")&"'>确认修改</a> </td>"
					' response.write "</tr>"
		 
				rs.movenext '让指针向下移动一行,不然会报错
				loop
				' 遍历数据结束
			end if
 
		%>
	</table>
	
	
	<br><br><br>
	<div class="add">
		 <input type="text" name="title" value="这是提交到数据库的内容" />
		<button onclick="add()">提交</button>
	</div>
	<script>
		//修改
		function update(me){
			//取出所对应的数据
			const id = me.name.replace("btn_",'')
			const title = document.querySelector("input[name='"+id+"']").value
			window.location.href="?action=update&title="+title+ "&id="+id

		}
		//添加
		function	add(){
			if(check()){	//判断条件
				window.location.href="?action=add&title="+ document.querySelector("input[name='title']").value
			}
		}
		function check(){
			return true;
		}
	</script>
 </body>

 </html>
 <%
rs.close '关闭 记录集bai  
set rs=nothing '释放对象 显式声明该变量为du"无",期望占用的内存能回收(实际情况是常常无zhi法回收)dao
conn.close '关闭 数据库连接
set conn=nothing '释放空间 显式声明该变量为"无",期望占用的内存能回收(实际情况跟上面一样糟!)
 %>
posted @   coderwcb  阅读(600)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示