《ACCESS数据库的连接和读取记录.docx》由会员分享,可在线阅读,更多相关《ACCESS数据库的连接和读取记录.docx(13页珍藏版)》请在三一办公上搜索。
1、ACCESS数据库的连接和读取记录ACCESS数据库的连接和读取记录 今天要学习的内容有一点枯燥,但是很重要。在这里大家不需要知道命令具体的运行情况,外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。 下面开门见山,看两句话: 第一句话定义了一个adodb数据库连接组件,第二句连接了数据库,大家只要修改后面的数据库名字就可以了。是不是很简单? 下面再看三句: 这三句加在前面两句的后面,第一句:设置查询数据库的命令,select后面加的是字段,如果都要查询的话就用*,from后面再加上表的名字,我们前面建立的是不是一个gustbook表阿?第二句:定义一个记录集组件,
2、所有搜索到的记录都放在这里面,第三句是打开这个记录集,exec就是前面定义的查询命令,conn就是前面定义的数据库连接组件,后面参数“1,1”,这是读取,后面讲到修改记录就把参数设置为1,3,好了接下来我们读取记录。 在一个表格中,我们用4列分别显示了上次建立的表里面的四个字段,用do循环,not rs.eof的意思是条件为没有读到记录集的最后,rs.movenext的意思是显示完一条转到下面一条记录,就等于用于在html代码里面插入asp代码,主要用于显示变量。 学会数据库的基本操作1 数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。今天我们先学习写入记录。 先建立一个表单:
3、 name tel message 表单提交到example5.asp,下面是example5.asp的代码: 在这里前面两句我不说了,后面三句我也不说了,前面说过exec里面的是执行的命令,添加记录的比较繁,大家要仔细看。insert into后面加的是表的名字,后面的括号里面是需要添加的字段,不用添加的或者字段的内容就是默认值的可以省略。注意,这里的变量一定要和ACCESS里面的字段名对应,否则就会出错。values后面加的是传送过来的变量。exec是一个字符串,insert into guestbook(name,tel,message)values(是第一段,在ASP里面不能嵌双引号,
4、所以可以用代替双引号,放在双引号里面,连接两个变量用+或者&所以,又是一段,中间夹了一个name就是表单传来的变量,这样就可以在这个变量外面加两个,表示是字符串了,后面的tel是数字型变量所以不需要外面包围,大家慢慢分析这句话,如果用表单传来的数据代替变量名字的话这句话为:insert into guestbook(name,tel,message)values(aaa,111,bbb)。 接下来的conn.execute 就是执行这个exec命令,最后别忘记把打开的数据库关闭,把定义的组件设置为空,这样可以返回资源。上次的读取为了简单,我没有关闭,大家可以补充上去: rs.close set
5、 rs=nothing conn.close set conn=nothing 记住,次序不可以颠倒! 学会数据库的基本操作2 在第四天中我们有这样一个程序: 我们查询的是所有的记录,但是我们要修改、删除记录的时候不可能是所有记录,所有我们要学习检索合适的记录。先看一条语句: a=张三 b=111 exec=select * from guestbook where name=+a+and tel=+b where后面加上的是条件,与是and,或是or,我想=,=,的含义大家都知道吧。这句话的意思就是搜索name是张三的,并且电话是111的记录。还有一点就是如果要搜索一个字段里面是不是包含一个
6、字符串就可以这么写:where instr(name,a)也就是搜索name里面有a这个字符串的人。 我这里的a,b,是常量,大家可以让a,b是表单提交过来的变量,这样就可以做一个搜索了。 下面大家看看这个代码,理解一下: 搜索: name = and tel= example6.asp: 无标题文档 学会数据库的基本操作3 开门见山,大家直接看程序。 exec=delete * from guestbook where id=&request.form(id) 上面这句话完成了删除记录的操作,不过锁定记录用了记录唯一的表示id,我们前面建立数据库的时候用的是系统给我们的主键,名字是编号,由于
7、是中文的名字不是很方便,大家可以修改为id,不修改的话就是 exec=delete * from guestbook where 编号=&request.form(id) 下面我们看完整的代码:一个表单传给ASP文件一个ID,然后这个ASP文件就删除了这个ID。 delete: example7.asp: 我在示例里面加了一个example72.asp,和example4.asp差不多,就是加了一个id字段,大家可以先运行这个文件看一下所有记录的ID和想删除记录的ID,删除记录以后也可以通过这个文件复查。等到最后一天,我们会把所有的这些东西整合的。大家就不会需要这么麻烦的操作。 example
8、72.asp: 无标题文档 1. 学会数据库的基本操作4 先来看代码: aa bb input type=text name=aa value= input type=text name=bb value= input type=hidden name=id value= 大家到现在应该分析这个代码没有什么问题,这个代码的作用是接受前面一个页面的ID然后显示这条记录,文本框即是输入的地方也是显示的地方,如果需要修改的话修改以后按提交;如果不需要修改就可以直接按提交按钮。这里还有一个东西以前没有说,那就是隐藏的表单元素:hidden元素,里面的value是不用用户输入的,会随着表单一起提交,用于
9、传递变量。下面是modifysave.asp的代码: 在这里,rs.open exec,conn,1,3后面的参数是1,3,这我以前提过,修改记录就要用1,3。实际上修改记录很容易看懂,记录集是rs,rs(aa)就是当前记录aa字段的东西,让它等于新的数据request.form(aa)当然就修改了,不过最后别忘记保存,那就是rs.update! 说到这里,记录的搜索,读取,修改,插入都说了,通过这最基本的东西就可以作出复杂的东西了,外面的大型数据库:新闻系统,留言簿就是字段多一点罢了。今天的示例中的代码是结合以前的数据库的,大家DOWN了以后回去调试分析一下。 由于IE浏览器升级禁用了alt
10、+x快捷键,请用alt+q快捷键来快速进入写说说入口undefined 基本的SESSION组件,总结response,request组件。 首先,有会员系统的任何程序都会用到检测是不是用户已经登陆这个步骤。这就用到了SESSION组件,下面我们 看一个代码来说明。 这句话的意思就是在session里面定义一个islogin字符串变量,值为yes,直接可以赋值,不需要声明。是不是很简单? 如果我们做管理员登陆系统的话,首先是一段检测是不是管理员 if 是 then session(isadmin)=yes else session(isadmin)=no end if 在每一个需要管理员才能看
11、的页面最前面加上 这样一般用户就无法打开这个页面。解释一下response.redirect,它是转向的意思,后面的login.htm就是转向的文件。这样没有登陆的管理员是无法看到后面的内容的。 下面总结一下 response组件基本就是用到response.write ,response.redirect 分别是写字符串和转向的作用 request基本就是request.form,request.querystring 分别是接受post,get方法传来的信息 分页技术,总结 今天最后一天我们学习一下ASP里面稍微难一点地分页技术,毕竟当我们有N条记录的时候我们不可能把所有记录显示在一个页面
12、里面吧。 % exec=select * from test set rs=server.createobject(adodb.recordset) rs.open exec,conn,1,1 rs.PageSize=3 pagecount=rs.PageCount page=int(request.QueryString (page) if page rs.pagesize设置一个页面里面显示的记录数,pagecount是我们自己定义的一个变量,rs.pagecount是记录的个数,page也是我们自己定义的一个变量,我们下一页的链接可以设置为list.asp?page=,下一页的链接可以设
13、置为list.asp?page=,这样当按下链接的时候调用页面自己,page这个变量就+1或者-1了,最后我们让rs.absolutepage为第page页就可以了。 if request.QueryString(page)= then page=1,这句话的作用就是我们打开list.asp的时候没有跟随page变量,自动设置为page=1,防止出错,还有当我们if.then.放在一行的时候end if可以省略。是不是分页也不难? 下面说一种特殊情况: if page=1 and not page=pagecount,这个时候没有上一页,但是有下一页 elseif page=pagecount
14、 and not page=1,这个时候没有下一页,但是有上一页 elseif pagepagecount then,这个时候没有任何记录 elseif page=1 and page=pagecount,这个时候没有上一页,没有下一页 else,这个时候有上一页,也有下一页。 下面看一段显示1到n页,且每一个数字点击以后就出现这个数在代表的页面的代码,很常见哦。 a href=list.asp?page= for.next是循环从i=1开始,循环一次加1到pagecount为止。 最后我的实例里面包含了一个最简单的ASP程序,但是功能样样有,是ASP的精髓,每一个ASP大型程序都包含了它。 add.htm增加记录页面 add.asp增加记录操作 conn.asp数据库链接 del.asp删除记录操作 modify.asp修改记录页面 modifysave.asp修改记录操作 list.asp这个是这个程序的核心,通过这个页面实现记录的添加、修改、删除。 test.mdb数据库,里面有aa,bb两个字段:aa数字型只能接受数字,bb是字符型。