ASP+Access实现增删改查分页基本操作.docx

上传人:牧羊曲112 文档编号:3153056 上传时间:2023-03-11 格式:DOCX 页数:15 大小:41.10KB
返回 下载 相关 举报
ASP+Access实现增删改查分页基本操作.docx_第1页
第1页 / 共15页
ASP+Access实现增删改查分页基本操作.docx_第2页
第2页 / 共15页
ASP+Access实现增删改查分页基本操作.docx_第3页
第3页 / 共15页
ASP+Access实现增删改查分页基本操作.docx_第4页
第4页 / 共15页
ASP+Access实现增删改查分页基本操作.docx_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ASP+Access实现增删改查分页基本操作.docx》由会员分享,可在线阅读,更多相关《ASP+Access实现增删改查分页基本操作.docx(15页珍藏版)》请在三一办公上搜索。

1、ASP+Access实现增删改查分页基本操作说实在的,我没有用过ASP+Access做过开发的。用Access在大学时做过开发,是用Java做的一个桌面小程序。但是,如何用ASP+Access进行开发、以及在开发过程中的问题,有好几个同学问过我,由于自己没弄过,所以也就答不上来。上次也一样,好友要我弄个ASP+Access的简单例子给他,没办法,只好边上网查边给好友弄了个查列表的演示功能,其它的增、删、改好友自己搞定。今天我一起把这几个基本功能一并整理,做个备份,以备将来自己用到或是好友问到。一、简单介绍要用Access,首先得在电脑上安装个MS Office Access程序。它和其它数据库

2、不同的是,它只有一个文件,直接操作这个文件即可;它有个便利的地方:当感觉哪条数据不爽或是不对时,可以直接打开修改,也就是MS Office Access集成了服务器和可视化客户端。Access是不支持并发的,因为当天我用客户端打开数据库文件,同时用ASP访问时,就报错,具体信息忘记了,大意是已经打开了,不能再访问了。至于支持不支持事务等,我想是不支持的,连并发都不支持,那么支持事务就没有任何意义了。二、打开和关闭Access连接用JDBC操作数据库先是要打开一个连接的,操作完了就要关闭该连接。ASP操作Access也不例外,用时也要打开一个连接,用完了也要关闭的。1、打开连接<%Set c

3、onn = Server.CreateObject(ADODB.Connection)conn.Open Driver=Microsoft Access Driver (*.mdb); DBQ= & Server.MapPath(TEST.mdb)%>上面的conn最后的就是打开的连接了,最后的Server.MapPath(TEST.mdb)是指定Access数据文件的位置的,Server.MapPath(path)就是把相对路径转化成绝对路径,这样Driver就可以找到该数据文件了。2、关闭连接<%conn.closeset conn = nothing%>上面的conn.clo

4、se就是关闭了,set conn = nothing就是把conn指向null了。有个问题:conn.close有没有可能抛出异常,该如何捕捉?三、ASP对Access实现增操作要有后面的删、改、查,首先数据库中得有数据,所以“增”放在第一个。<%Set rs = Server.CreateObject(ADODB.Recordset) sql = select * from feedback where (feedbackid is null) rs.open sql,conn,1,3rs.addnewrs(typeid) = typeidrs(feedbackC) = feedback

5、Crs.updaters.closeset rs = nothing%>很是神奇,要想插入数据,还先得查下数据库,网上还有以下这种做法。<%sql = select * from feedback rs.open sql,conn,3,3%>感觉是先把数据记录全部查出来,然后增加一条,万一数据库有一亿记录,真不敢想象这种操作的可行性,希望我的感觉是错的。和数据库连接一样,结果集rs不用了也要关闭的,并且要在连接关闭之前关闭。四、ASP对Access实现删操作数据库中的不爽的数据,当然要把它删掉或是修改掉了,数据量太大了,还是删除比较简单的,有时间再修改好了。<%Set rs =

6、 Server.CreateObject(ADODB.Recordset) sql = select * from feedback where feedbackid=&request(feedbackid)application.lockrs.open sql,conn,1,3if rs.recordcount > 0 thenrs.Deleteend ifrs.closeapplication.unlockSet rs = nothing%>和增加一样,删除前也是先要查,呵呵,感觉ASP操作Access真的是很好玩的。五、ASP对Access实现改操作现在有时间了,那些不爽的数据记

7、录可以修改下,不要都删除掉了,不然数据库中都没数据了。<%Set rs = Server.CreateObject(ADODB.Recordset) sql = select * from feedback where feedbackid=&request(feedbackid)rs.open sql,conn,1,3if rs.recordcount > 0 thenrs(typeid) = request(typeid)rs(feedbackC) = request(feedbackC)rs.updateend ifrs.closeSet rs = nothing%>和增加一

8、个样,只是少了个rs.addnew语句,还是先要查出来,呵呵。六、ASP对Access实现查操作其实“查”我们一直在做,上面的几个操作中,每个操作之前,我们必须得先“查”,这也许就是Access的魅力:你想用ASP操作Access吗,那么你就先查吧!<%Set rs = Server.CreateObject(ADODB.Recordset) sql = select * from feedback order by feedbackid descrs.open sql,conn,1,1 do while not rs.eof%>内容:<%=rs(feedbackC)%>,这里

9、就可以充分使用你的数据记录吧。<%rs.movenextlooprs.closeSet rs = nothing%>细心的朋友会发现,上面的列表是查出所有的记录,跟上面的假设一样,如果数据库中有一亿条记录,那么整个网络就在传数据了,网页浏览者喝杯咖啡,上个厕所后,数据还没有传完,洗个澡后发现整个页面全是记录了,这肯定是不好的,我们必须分页才行啊,数据得一页一页的浏览。七、ASP对Access分页取数据良好的用户体验是每个网站站长不懈的追求,其中分页浏览数据记录就是其中之一。<%if request(page)<> thenpage = cint(request(page)e

10、lsepage = 1end if%>首先是获得第几页,如果第几页参数为空,则默认为第1页。<%set rs = server.CreateObject(adodb.recordset)sql = select * from feedback order by feedbackid descrs.Open sql,conn,1,4if not rs.EOF thenrs.pagesize = 15rs.absolutepage = page%><!- 开始:使用记录 -><%For absRecordNum = 1 to rs.PageSize%>内容:<%=r

11、s(feedbackC)%>,其它的内容<%rs.MoveNextif rs.eof then exit fornext%><!- 结束:使用记录 -><%elseResponse.Write(<center>抱歉,没有找到相关记录!</center>)end if%>上面就是分页了,每页15条记录,这样网站浏览者就爽多了,不用紧等了,其实我们还漏了下面将要说的一个问题。八、ASP对Access分页函数上页我们只是从请求参数中获得分页页码,但要每个用户浏览一页都要修改URL中的分页是不可以的,所以我们必须在网页上提供一个“上一页”,“下一页”等分页栏

12、。下面是一个分页栏函数。<%sub fy2(page, name, rs)response.write <table width=100% border=0 cellpadding=0 cellspacing=0>response.write <form name=form2 method=get >response.write <tr>response.write <td align=right class=unnamed1>Response.Write <font color=#FF0000 class=unnamed1></font>

13、信息有&rs.recordcount&条</td>If Page > 1 ThenResponse.Write <td width=65><table width=57 height=21 border=0 cellpadding=0 cellspacing=0 class=ML_But_6 id=bz>Response.Write <tr>Response.Write <td align=center valign=middle><a HREF=&name&spage=1 class=ML_But_6>第一页</a></td&g

14、tResponse.Write </tr></table></td>Response.Write <td width=65><table width=57 height=21 border=0 cellpadding=0 cellspacing=0 class=ML_But_6 id=bz>Response.Write <tr>Response.Write <td align=center valign=middle><a HREF=&name&Page=&(Page-1)& class=ML_But_6>上一页</a>&

15、lt/td>Response.Write </tr></table></td>End Ifif page= and rs.pageCount<>0 thenResponse.Write <td width=65><table width=57 height=21 border=0 cellpadding=0 cellspacing=0 class=ML_But_6 id=bz>Response.Write <tr>Response.Write <td align=center valign=middle><a HREF=&

16、name&Page=&(1+1)& class=ML_But_6>下一页</a></td>Response.Write </tr></table></td>Response.Write <td width=65><table width=57 height=21 border=0 cellpadding=0 cellspacing=0 class=ML_But_6 id=bz>Response.Write <tr>Response.Write <td align=center valign=middle><a HR

17、EF=&name&Page=&rs.pageCount& class=ML_But_6>最后一页</a></td>Response.Write </tr></table></td>End IfIf Page < cint(rs.pageCount) ThenResponse.Write <td width=65><table width=57 height=21 border=0 cellpadding=0 cellspacing=0 class=ML_But_6 id=bz>Response.Write <tr>Resp

18、onse.Write <td align=center valign=middle><a HREF=&name&Page=&(1+1)& class=ML_But_6>下一页</a></td>Response.Write </tr></table></td>Response.Write <td width=65><table width=57 height=21 border=0 cellpadding=0 cellspacing=0 class=ML_But_6 id=bz>Response.Write <tr>

19、Response.Write <td align=center valign=middle><a HREF=&name&Page=&rs.pageCount& class=ML_But_6>最后一页</a></td>Response.Write </tr></table></td>End If response.write <td width=150 class=unnamed1><font color=#ff0000>&第&page&页/共&rs.pagecount&页</font><font color=#

20、000000>if rs.pageCount<>0 thenresponse.write <INPUT TYPE=hidden NAME=proname value=&request(proname)>response.write <INPUT TYPE=hidden NAME=aaa value=&request(aaa)>response.write <INPUT TYPE=hidden NAME=title value=&request(title)>response.write <INPUT TYPE=hidden NAME=id value=&

21、request(id)>response.write <INPUT TYPE=hidden NAME=type value=&request(type)>response.write <INPUT TYPE=hidden NAME=flag value=1>response.write <select name=page onchange=submit >for n=1 to rs.pageCount if n=page thenresponse.write <option value=&n& selected class=unnamed1>&n&页</

22、option>elseresponse.write <option value=&n& class=unnamed1>&n&页</option>end iftotalpage=totalpage+nnextresponse.write </select></font></td></tr></form></table>end ifend sub%>上面就定义了一个叫fy2的分页函数,它有三个参数,分别为第几页,URL和结果集。其中URL中不要带page属性。它的用法如下所示。<%fy2 page, newlist.asp

23、?flag=1&id=&request(id)&type=&request(type)&title=&request(title)&lx=&request(lx)&, rs%>在for循坏的前后都可以通过上面的方式使用分页栏了,注意的是:URL最后要带上&号,并且不能有page属性。九、最后上面只是对ASP操作Access的方式作了简单的介绍,用是可以用了,但是性能和效率问题都没有考虑,对于自己的疑问我也没有去证实,希望从事ASP+Access开发的朋友能留言指正。=如有批评、指教、疑惑,请:obullxl祝大家使用JAVA愉快!刚从网站<%增加、删除数据表和字段增加数据表:Creat

24、e Table 表名(字段名 type(size) null|not null default eExpression primary key,field2.) 字段类型type:counter;text(num);char(num);varchart(num);memo;short;long;single;double;date/time;logical;currency;oleobject删除数据表:Drop Table 表名增加字段:Alter Table 表名 Add Column 字段名 type(size)not null删除字段:Alter Table 表名 Drop Colum

25、n 字段名Dim objConn,strsqlSet objConn = Server.CreateObject(ADODB.Connection)objConn.open Driver=Microsoft Access Driver (*.mdb);Dbq= & Server.MapPath(zzksycn.mdb)mytable为表名,myfield为字段名strsql = Create table mytable(id counter primary key,name char(20),url char(50),hits short)objConn.execute(strsql)strsql = Alter table mytable add column myfield text(50)objConn.execute(strsql)strsql = Alter table mytable drop column myfieldobjConn.execute(strsql)strsql = Drop table mytableobjConn.execute(strsql)%>那么可不可以通过同样的方式进行DML操作呢?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号