欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

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

    • 资源ID:3153056       资源大小:41.10KB        全文页数:15页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    ASP+Access实现增删改查分页基本操作说实在的,我没有用过ASP+Access做过开发的。用Access在大学时做过开发,是用Java做的一个桌面小程序。但是,如何用ASP+Access进行开发、以及在开发过程中的问题,有好几个同学问过我,由于自己没弄过,所以也就答不上来。上次也一样,好友要我弄个ASP+Access的简单例子给他,没办法,只好边上网查边给好友弄了个查列表的演示功能,其它的增、删、改好友自己搞定。今天我一起把这几个基本功能一并整理,做个备份,以备将来自己用到或是好友问到。一、简单介绍要用Access,首先得在电脑上安装个MS Office Access程序。它和其它数据库不同的是,它只有一个文件,直接操作这个文件即可;它有个便利的地方:当感觉哪条数据不爽或是不对时,可以直接打开修改,也就是MS Office Access集成了服务器和可视化客户端。Access是不支持并发的,因为当天我用客户端打开数据库文件,同时用ASP访问时,就报错,具体信息忘记了,大意是已经打开了,不能再访问了。至于支持不支持事务等,我想是不支持的,连并发都不支持,那么支持事务就没有任何意义了。二、打开和关闭Access连接用JDBC操作数据库先是要打开一个连接的,操作完了就要关闭该连接。ASP操作Access也不例外,用时也要打开一个连接,用完了也要关闭的。1、打开连接&lt%Set conn = Server.CreateObject("ADODB.Connection")conn.Open "Driver=Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("TEST.mdb")%&gt上面的conn最后的就是打开的连接了,最后的Server.MapPath("TEST.mdb")是指定Access数据文件的位置的,Server.MapPath("path")就是把相对路径转化成绝对路径,这样Driver就可以找到该数据文件了。2、关闭连接&lt%conn.closeset conn = nothing%&gt上面的conn.close就是关闭了,set conn = nothing就是把conn指向null了。有个问题:conn.close有没有可能抛出异常,该如何捕捉?三、ASP对Access实现增操作要有后面的删、改、查,首先数据库中得有数据,所以“增”放在第一个。&lt%Set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from feedback where (feedbackid is null)" rs.open sql,conn,1,3rs.addnewrs("typeid") = typeidrs("feedbackC") = feedbackCrs.updaters.closeset rs = nothing%&gt很是神奇,要想插入数据,还先得查下数据库,网上还有以下这种做法。&lt%sql = "select * from feedback" rs.open sql,conn,3,3%&gt感觉是先把数据记录全部查出来,然后增加一条,万一数据库有一亿记录,真不敢想象这种操作的可行性,希望我的感觉是错的。和数据库连接一样,结果集rs不用了也要关闭的,并且要在连接关闭之前关闭。四、ASP对Access实现删操作数据库中的不爽的数据,当然要把它删掉或是修改掉了,数据量太大了,还是删除比较简单的,有时间再修改好了。&lt%Set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from feedback where feedbackid="&request("feedbackid")application.lockrs.open sql,conn,1,3if rs.recordcount &gt 0 thenrs.Deleteend ifrs.closeapplication.unlockSet rs = nothing%&gt和增加一样,删除前也是先要查,呵呵,感觉ASP操作Access真的是很好玩的。五、ASP对Access实现改操作现在有时间了,那些不爽的数据记录可以修改下,不要都删除掉了,不然数据库中都没数据了。&lt%Set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from feedback where feedbackid="&request("feedbackid")rs.open sql,conn,1,3if rs.recordcount &gt 0 thenrs("typeid") = request("typeid")rs("feedbackC") = request("feedbackC")rs.updateend ifrs.closeSet rs = nothing%&gt和增加一个样,只是少了个rs.addnew语句,还是先要查出来,呵呵。六、ASP对Access实现查操作其实“查”我们一直在做,上面的几个操作中,每个操作之前,我们必须得先“查”,这也许就是Access的魅力:你想用ASP操作Access吗,那么你就先查吧!&lt%Set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from feedback order by feedbackid desc"rs.open sql,conn,1,1 do while not rs.eof%&gt内容:&lt%=rs("feedbackC")%&gt,这里就可以充分使用你的数据记录吧。&lt%rs.movenextlooprs.closeSet rs = nothing%&gt细心的朋友会发现,上面的列表是查出所有的记录,跟上面的假设一样,如果数据库中有一亿条记录,那么整个网络就在传数据了,网页浏览者喝杯咖啡,上个厕所后,数据还没有传完,洗个澡后发现整个页面全是记录了,这肯定是不好的,我们必须分页才行啊,数据得一页一页的浏览。七、ASP对Access分页取数据良好的用户体验是每个网站站长不懈的追求,其中分页浏览数据记录就是其中之一。&lt%if request("page")&lt&gt"" thenpage = cint(request("page")elsepage = 1end if%&gt首先是获得第几页,如果第几页参数为空,则默认为第1页。&lt%set rs = server.CreateObject("adodb.recordset")sql = "select * from feedback order by feedbackid desc"rs.Open sql,conn,1,4if not rs.EOF thenrs.pagesize = 15rs.absolutepage = page%&gt&lt!- 开始:使用记录 -&gt&lt%For absRecordNum = 1 to rs.PageSize%&gt内容:&lt%=rs("feedbackC")%&gt,其它的内容&lt%rs.MoveNextif rs.eof then exit fornext%&gt&lt!- 结束:使用记录 -&gt&lt%elseResponse.Write("&ltcenter&gt抱歉,没有找到相关记录!&lt/center&gt")end if%&gt上面就是分页了,每页15条记录,这样网站浏览者就爽多了,不用紧等了,其实我们还漏了下面将要说的一个问题。八、ASP对Access分页函数上页我们只是从请求参数中获得分页页码,但要每个用户浏览一页都要修改URL中的分页是不可以的,所以我们必须在网页上提供一个“上一页”,“下一页”等分页栏。下面是一个分页栏函数。&lt%sub fy2(page, name, rs)response.write "&lttable width='100%' border='0' cellpadding='0' cellspacing='0'&gt"response.write "&ltform name='form2' method='get' &gt"response.write "&lttr&gt"response.write "&lttd align='right' class='unnamed1'&gt"Response.Write "&ltfont color='#FF0000' class='unnamed1'&gt&lt/font&gt 信息有"&rs.recordcount&"条&lt/td&gt"If Page &gt 1 ThenResponse.Write "&lttd width='65'&gt&lttable width='57' height='21' border='0' cellpadding='0' cellspacing='0' class='ML_But_6' id='bz'&gt"Response.Write "&lttr&gt"Response.Write "&lttd align='center' valign='middle'&gt&lta HREF="&name&"spage=1 class='ML_But_6'&gt第一页&lt/a&gt&lt/td&gt"Response.Write "&lt/tr&gt&lt/table&gt&lt/td&gt"Response.Write "&lttd width='65'&gt&lttable width='57' height='21' border='0' cellpadding='0' cellspacing='0' class='ML_But_6' id='bz'&gt"Response.Write "&lttr&gt"Response.Write "&lttd align='center' valign='middle'&gt&lta HREF="&name&"Page="&(Page-1)&" class='ML_But_6'&gt上一页&lt/a&gt&lt/td&gt"Response.Write "&lt/tr&gt&lt/table&gt&lt/td&gt"End Ifif page="" and rs.pageCount&lt&gt0 thenResponse.Write "&lttd width='65'&gt&lttable width='57' height='21' border='0' cellpadding='0' cellspacing='0' class='ML_But_6' id='bz'&gt"Response.Write "&lttr&gt"Response.Write "&lttd align='center' valign='middle'&gt&lta HREF="&name&"Page="&(1+1)&" class='ML_But_6'&gt下一页&lt/a&gt&lt/td&gt"Response.Write "&lt/tr&gt&lt/table&gt&lt/td&gt"Response.Write "&lttd width='65'&gt&lttable width='57' height='21' border='0' cellpadding='0' cellspacing='0' class='ML_But_6' id='bz'&gt"Response.Write "&lttr&gt"Response.Write "&lttd align='center' valign='middle'&gt&lta HREF="&name&"Page="&rs.pageCount&" class='ML_But_6'&gt最后一页&lt/a&gt&lt/td&gt"Response.Write "&lt/tr&gt&lt/table&gt&lt/td&gt"End IfIf Page &lt cint(rs.pageCount) ThenResponse.Write "&lttd width='65'&gt&lttable width='57' height='21' border='0' cellpadding='0' cellspacing='0' class='ML_But_6' id='bz'&gt"Response.Write "&lttr&gt"Response.Write "&lttd align='center' valign='middle'&gt&lta HREF="&name&"Page="&(1+1)&" class='ML_But_6'&gt下一页&lt/a&gt&lt/td&gt"Response.Write "&lt/tr&gt&lt/table&gt&lt/td&gt"Response.Write "&lttd width='65'&gt&lttable width='57' height='21' border='0' cellpadding='0' cellspacing='0' class='ML_But_6' id='bz'&gt"Response.Write "&lttr&gt"Response.Write "&lttd align='center' valign='middle'&gt&lta HREF="&name&"Page="&rs.pageCount&" class='ML_But_6'&gt最后一页&lt/a&gt&lt/td&gt"Response.Write "&lt/tr&gt&lt/table&gt&lt/td&gt"End If response.write "&lttd width='150' class='unnamed1'&gt&ltfont color=#ff0000&gt"&"第"&page&"页/共"&rs.pagecount&"页&lt/font&gt&ltfont color=#000000&gt"if rs.pageCount&lt&gt0 thenresponse.write "&ltINPUT TYPE='hidden' NAME='proname' value='"&request("proname")&"'&gt"response.write "&ltINPUT TYPE='hidden' NAME='aaa' value='"&request("aaa")&"'&gt"response.write "&ltINPUT TYPE='hidden' NAME='title' value='"&request("title")&"'&gt"response.write "&ltINPUT TYPE='hidden' NAME='id' value='"&request("id")&"'&gt"response.write "&ltINPUT TYPE='hidden' NAME='type' value='"&request("type")&"'&gt"response.write "&ltINPUT TYPE='hidden' NAME='flag' value=1&gt"response.write "&ltselect name='page' onchange=submit &gt"for n=1 to rs.pageCount if n=page thenresponse.write "&ltoption value="&n&" selected class='unnamed1'&gt"&n&"页&lt/option&gt"elseresponse.write "&ltoption value="&n&" class='unnamed1'&gt"&n&"页&lt/option&gt"end iftotalpage=totalpage+nnextresponse.write "&lt/select&gt&lt/font&gt&lt/td&gt&lt/tr&gt&lt/form&gt&lt/table&gt"end ifend sub%&gt上面就定义了一个叫fy2的分页函数,它有三个参数,分别为第几页,URL和结果集。其中URL中不要带page属性。它的用法如下所示。&lt%fy2 page, "newlist.asp?flag=1"&"&id="&request("id")&"&type="&request("type")&"&title="&request("title")&"&lx="&request("lx")&"&", rs%&gt在for循坏的前后都可以通过上面的方式使用分页栏了,注意的是:URL最后要带上&号,并且不能有page属性。九、最后上面只是对ASP操作Access的方式作了简单的介绍,用是可以用了,但是性能和效率问题都没有考虑,对于自己的疑问我也没有去证实,希望从事ASP+Access开发的朋友能留言指正。=如有批评、指教、疑惑,请:obullxl祝大家使用JAVA愉快!刚从网站&lt%'增加、删除数据表和字段'增加数据表:Create 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 Column 字段名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 myfield"objConn.execute(strsql)strsql = "Drop table mytable"objConn.execute(strsql)%&gt那么可不可以通过同样的方式进行DML操作呢?

    注意事项

    本文(ASP+Access实现增删改查分页基本操作.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开