1、ASP数据库操作总结 一 连接数据库 Conn.asp <% set db=server.CreateObject("adodb.connection") str="Driver={microsoft access driver (*.mdb)};DBQ=" & server.MapPath("db\address.mdb") db.open str %> 之后在每个需要操作数据库的页面引用该文件 二 显示数据库记录 1、首先建立记录集 <% dim rs,sql Set rs=Server.C
2、reateObject("Adodb.Recordset") sql="Select * from link" rs.open sql,db,1,1(或1,3) %> 显示记录的方法 <% do while not rs.eof %>
3、 width="54">修改
4、news.open sql,conn,1,3 if yname<>"" and url<>"" then rs_news.addnew rs_news("name")=yname rs_news("url")=url rs_news("intro")=intro rs_news("submit_date")=date rs_news.update end if %> 添加记录的另一种方法 四 删除记录 (删除记录时,要注意传递相关参数) <% id=request.QueryString("id") set rs_news=server.CreateObjec
5、t("adodb.recordset") sql="delete from link where link_id="& id rs_news.open sql,conn,1,3 response.Redirect("dbshow.asp") %> 五 修改记录 首先建立记录集,根据传递的参数将要修改的记录取出来(尤其要提醒的是,一定要注意SQL语句的写法) <% id=request.QueryString("id") set rs_news=server.CreateObject("adodb.recordset") sql="select * from link
6、 where link_id=" & id rs_news.open sql,conn,1,3%> 然后修改(一般需要修改的记录放在表单中,不需要修改的直接显示出来) <% if request("name")<>"" and request("url")<>"" and request("intro")<>"" then yname=request("yname") url=request("url") intro=request("intro") set rs=server.CreateObject("adodb.recordset") sql="update link
7、 set name='" & yname &"',url='" & url &"',intro='" & intro &"' where link_id=" & id rs.open sql,conn,1,3 response.Redirect("dbshow.asp") end if%> 六 搜索 <% dim sql,rs,findtext findtext=request.Form("findtext") if findtext<>"" then sql="select * from link where name like '%" & findtex
8、t & "%'" set rs=db.execute(sql) do while not rs.eof %>
9、上一页”链接失效,当显示的页数为最后页时,“下一页”、“尾页”链接失效。 接下来,以实例的方式介绍怎么一步步的做出这种分页效果。 首先,数据库中字段record_info存在于info表中,先链接数据库并将一个记录集打开,以下代码: <% Set conn=Server.CreateObject("Adodb.Connection") connstr="provider=Microsoft.JET.OLEDB.4.0;Data Source="&Server.MapPath("data.mdb") conn.open connstr Set rs=Server.CreateObj
10、ect("Adodb.Recordset") sql="Select * from info" rs.open sql,conn,1,1 %> 这段代码不详解,以前课我们已经讲过,接下来这是分页中比较重要的部分,只有三行而已: <% rs.pagesize=5 curpage=Request.QueryString("curpage") if curpage="" then curpage=1 rs.absolutepage=curpage %> 第二句:rs.pagesize=5,这个什么意思呢?它就是在Recordset对象中的一个内置属性,它的作用是指定每页的记录条
11、数,设置为5时,每5条记录放在一起成一页(即每页只显示5条记录),比如实例中共有21条记录,那么,使用rs.pagesize分页后,这21条记录将分成5页进行显示。 第三、四句:这里主要是用于翻页的功能,将URL的post参数curpage传递给curpage变量,这个curpage将得到浏览者想要到达的页数,同时用if语句将没有传递到curpage参数的页直接赋于第一页的值。(运行一下实例就会明白) 第五句:rs.absolutepage,这个也是个内置的属性,它代表的意思就是将curpage变量的数值指定为当前页。 现在开始可以让记录循环显示了: <% for i= 1 to r
12、s.pagesize
if rs.eof then
exit for
end if
%>
<%=rs("record_info")%>
<%
rs.movenext
next
%>
代码解释:
第二句:
利用for循环在每页显示rs.pagesize属性中指定的记录数。
第三、四、五句:
这句意思是当最后一页达不到指定记录时就退出循环,以免出错。
第七句:
绑定从数据库取出的record_info字段,就是叫这字段内的记录循环显示的。
第九句:
用rs.movenext方法将rs记录集往下移一条记录。
第十句:
for循环语句。
另外可以用<%
13、curpage%>读出当前页次,用<%=rs.pagecount%>读出总页数,用<%=rs.recordcount%>读出总记录数。例如:“当前第<%=curpage%>页,共有<%=rs.pagecount%>页,共有:<%=rs.recordcount%>条记录”。
在显示首页、上页、下页、尾页功能上,采用了if...else...语句,比较好懂。
<%if curpage=1 then%>
首页
<%else%>
首页
<%end if%>
<%if curpage=1 then%>
上一页
<%else%>
14、 href="?curpage=<%=curpage-1%>">上一页






