ADO组件之修改数据记录
2018-09-06 13:21
首先,要修改哪条
修改,不是笼而统之的,而是要针对某条具体对相应修改。可以形象地说,就是对数据库表中的具体哪一行进行具体的修改。
所以,这时候的记录集就有它特定的某个,当然这个主要还是由SQL语句来决定的。
比如sql=select*fromtablewhereid=1就表示提取的id编号是1的那行的所有记录,然后只要将该行中需要修改的字段赋以新值然后上传数据库就OK了。
同样的语句sql=select*fromtablewhereid=2相信你也能明白。
但作为我们在页面中,可不是就这样固定的,有可是选择某连接,或者输入某表单值……跳转到专门的修改页,这样所有的任务全在修改页上了,它所具备的SQL语句应该是适应性强的
比如sql=select*fromtablewhereid=request.queyrstring(id)
其次,将要修改的对应赋值
很简单,正如插入记录一样,将字段和值对应起来。
rs(cn_name)=cnbruce
rs(cn_sex)=male
对应的值当然也可以是某个变量或函数
最后,上传更新数据库
和插入一样进行rs.updata,其实观察下来,插入新记录和更新记录只是多了rs.addnew这行的声明。
1,showit.asp
该文件是前面例中所建立引用的。其主要是显示的作用,那么现在,针对具体的某条记录增加跳转到修改页的超级链接。
<%
Fori=1tors.PageSize利用fornext循环依次读出当前页的记录
ifrs.EOFthen
ExitFor
endif
response.write(<ahref=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(<ahref=change.asp?id=rs(cn_id)>修改</a>)
后面的参数id的值则是动态的,那接着就看chang.asp的能耐了。
2,change.asp
<!--#includefile=conn.asp-->
<%
id=request.querystring(id)
%>
<%ifrequest.form(submit)=changethen
whattitle=request.form(title)
whoauthor=request.form(author)
whatcontent=request.form(content)
id=request.form(id)
Setrs=Server.CreateObject(ADODB.Recordset)
sql=Select*fromcnarticlewherecn_id=id
rs.Opensql,conn,3,2
rs(cn_title)=whattitle
rs(cn_author)=whoauthor
rs(cn_content)=whatcontent
rs.update
rs.close
Setrs=Nothing
conn.close
setconn=Nothing
response.redirect(showit.asp)
response.end
%>
<%endif%>
<%
ifid<>then
Setrs=Server.CreateObject(ADODB.Recordset)
sql=select*fromcnarticlewherecn_id=id
rs.Opensql,conn,1,1
whattitle=rs(cn_title)
whoauthor=rs(cn_author)
whatcontent=rs(cn_content)
endif
%>
<formaction=change.aspmethod=post>
Title:<inputtype=textname=titlevalue=<%=whattitle%>><br>
Author:<inputtype=textname=authorvalue=<%=whoauthor%>><br>
Content:<br>
<textareaname=contentrows=8cols=30><%=whatcontent%></textarea><br>
<inputtype=submitvalue=changename=submit>
<inputtype=resetvalue=Reset>
<inputname=idtype=hiddenvalue=<%=id%>>
</form>
当然所有的检察,安全防护都还没做,BUG多多,自己也来慢慢解决。
另外一类的修改更新
<%ifrequest.form(submit)=changethen
whattitle=request.form(title)
whoauthor=request.form(author)
whatcontent=request.form(content)
id=request.form(id)
sql=updatecnarticlesetcn_title=whattitle,cn_author=whoauthor,cn_content=whatcontentwherecn_id=id
conn.Execute(sql)
conn.close
setconn=Nothing
response.redirect(showit.asp)
response.end
%>