[摘要]首先,要修改哪条修改,不是笼而统之的,而是要针对某条具体对相应修改。可以形象地说,就是对数据库表中的具体哪一行进行具体的修改。所以,这时候的记录集就有它特定的某个,当然这个主要还是由SQL语句来决定...
首先,要修改哪条
修改,不是笼而统之的,而是要针对某条具体对相应修改。可以形象地说,就是对数据库表中的具体哪一行进行具体的修改。
所以,这时候的记录集就有它特定的某个,当然这个主要还是由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
 %>
 
 | 
  关键词:ADO组件之更改数据记录