当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP编程入门进阶(二十):ADO组件之修改数据记录

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

ASP编程入门进阶(二十):ADO组件之修改数据记录


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 110 ::
收藏到网摘: n/a

再来小总结一下:对数据库的操作无非就是显示记录,插入记录,修改记录,删除记录,查询记录。
并且在有关显示记录的时候还涉及到显示的输出格式、分页程序,那么再结合插入记录,一个简单的新闻系统,文章系统,留言系统,注册登陆系统不成任何问题。
下面就涉及到管理这块,需要对数据库记录进行修改。
首先,要修改哪条
修改,不是笼而统之的,而是要针对某条具体对相应修改。可以形象地说,就是对数据库表中的具体哪一行进行具体的修改。
所以,这时候的记录集就有它特定的某个,当然这个主要还是由SQL语句来决定的。
比如 sql="select * from table where id=1" 就表示提取的id编号是1的那行的所有记录,然后只要将该行中需要修改的字段赋以新值然后上传数据库就OK了。
同样的语句 sql="select * from table where id=2" 相信你也能明白。
但作为我们在页面中,可不是就这样固定的,有可是选择某连接,或者输入某表单值……跳转到专门的修改页,这样所有的任务全在修改页上了,它所具备的SQL语句应该是适应性强的
比如 sql="select * from table where id="&request.queyrstring("id")
其次,将要修改的对应赋值
很简单,正如插入记录一样,将字段和值对应起来。
rs("cn_name")="cnbruce"
rs("cn_sex")="male"
对应的值当然也可以是某个变量或函数
最后,上传更新数据库
和插入一样进行rs.updata ,其实观察下来,插入新记录和更新记录只是多了rs.addnew这行的声明。
1,showit.asp
该文件是前面例中所建立引用的。其主要是显示的作用,那么现在,针对具体的某条记录增加跳转到修改页的超级链接。

<%
For i = 1 to rs.PageSize '利用for next 循环依次读出当前页的记录
if rs.EOF then
Exit For
end if
response.write("<a href=change.asp?id="& rs("cn_id") &">修改</a>")
response.write("文章标题是:"& rs("cn_title"))
response.write("<br>文章作者是:"& rs("cn_author"))
response.write("<br>文章加入时间是:"& rs("cn_time"))
response.write("<br>文章内容是:"& rs("cn_content"))
response.write("<hr>")
rs.MoveNext
Next
%>

注意response.write("<a href=change.asp?id="& rs("cn_id") &">修改</a>")
后面的参数id的值则是动态的,那接着就看chang.asp的能耐了。
2,change.asp


<!--#include file="conn.asp" -->
<%
id=request.querystring("id")
%>
<%if request.form("submit")="change" then
whattitle=request.form("title")
whoauthor=request.form("author")
whatcontent=request.form("content")
id=request.form("id")
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from cnarticle where cn_id="&id
rs.Open sql,conn,3,2
rs("cn_title")=whattitle
rs("cn_author")=whoauthor
rs("cn_content")=whatcontent
rs.update
rs.close
Set rs = Nothing
conn.close
set conn=Nothing
response.redirect("showit.asp")
response.end
%>
<%end if%>
<%
if id<>"" then
Set rs = Server.CreateObject ("ADODB.Recordset")
sql="select * from cnarticle where cn_id="&id
rs.Open sql,conn,1,1
whattitle=rs("cn_title")
whoauthor=rs("cn_author")
whatcontent=rs("cn_content")
end if
%>
<form action="change.asp" method="post">
Title:<input type="text" name="title" value=<%=whattitle%>><br>
Author:<input type="text" name="author" value=<%=whoauthor%>><br>
Content:<br>
<textarea name="content" rows="8" cols="30"><%=whatcontent%></textarea><br>
<input type="submit" value="change" name="submit">
<input type="reset" value="Reset">
<input name="id" type="hidden" value="<%=id%>">
</form>

当然所有的检察,安全防护都还没做,BUG多多,自己也来慢慢解决。
另外一类的修改更新

<%if request.form("submit")="change" then
whattitle=request.form("title")
whoauthor=request.form("author")
whatcontent=request.form("content")
id=request.form("id")
sql = "update cnarticle set cn_title='"&whattitle&"',cn_author='"&whoauthor&"',cn_content='"&whatcontent&"' where cn_id="&id
conn.Execute(sql)
conn.close
set conn=Nothing
response.redirect("showit.asp")
response.end
%>