ASP打造图书录入查询系统(access版)-ASP技术-3P代码网
繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP应用 >> ASP打造图书录入查询系统(access版)

ASP打造图书录入查询系统(access版)

2006-02-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  界面演示:         所具备的功能:   1.主程序是用框架制作,是左右型框架。   2.可以添加书籍(书名,分类,出版社,价格,出版日期)。   3.可以添加删除分类并自动加入添加列表。   4.可以分类查...

  界面演示:

  

  

  所具备的功能:

  1.主程序是用框架制作,是左右型框架。

  2.可以添加书籍(书名,分类,出版社,价格,出版日期)。

  3.可以添加删除分类并自动加入添加列表。

  4.可以分类查询,和详细查询(按分类,价格,出版社,出版日期)。

  5.应朋友要求特别做了分页程序(本来不太喜欢做,感觉都很普遍有教程了)。

  欠缺部分:

  1.没有做后台管理(可参照第一个新闻教程)。

  2.对于表单的验证不是很严格。

  3.再有什么问题大家在制作中在告诉我吧!

  程序目录(看了是不是感觉非常简单啊):

  

  重点就是搜索页面,因为主要的知识点就是在于搜索功能写法,我感觉写的比较全面了!

  

  这个就是书籍添加图片,主要就是放在框架的left.asp,在2节课我会详细讲解!

  

  下面就开始安排一下课程吧!

  1.规划目录,建立数据库。

  好的程序首先要规划好目录和数据库!

  

  上面就是这个图书的目录!

  

  上面的图片说明必须建立2个表,一个xhbook,用于存放书籍的各个属性,另一个是xhbooktype存放书籍的分类!

  

  上图就是xhbooktype的结构,只有一个booktype就是存放书籍分类。

  

  上面就是xhbook表的结构,下列就是分类:

  bookname存放书籍名称

  booktype 存放书籍分类

  publishing 存放书籍的出版社

  bookmoney 存放书籍的价格

  xhdate 存放书籍的出版日期

  2.写conn.asp数据库连接页面,规划index.asp框架(分left.asp,right.asp)。

  在这里conn.asp文件我也不太想多讲解了,很多朋友已经很熟悉了,用于连接数据库文件!

<%

set db=server.createobject("adodb.connection")

db.open "DBQ="&server.mappath("date/xhbook.mdb")&";driver={microsoft access driver (*.mdb)}"

%>

  

  属于规范写法,数据库地址为date/xhbook.mdb为安全期间大家在使用中可以更改为asp格式。

  框架页面为index.asp分left.asp和right.asp页面。

  left.asp页面中的要点为:

  

  1.为连接数据库conn.asp文件。

  2.为一个SQL语句用于输出xhbooktype表中的记录(也就是分类)。

  3.执行SQL语句。

  

  这段语句中:

if request.form("active")="" then

else

set rs2=server.createobject("adodb.recordset")

date1=request.form("date1")

date2=request.form("date2")

date3=request.form("date3")

insertsql="select * from xhbook"

rs2.open insertsql,db,1,3

  意思为在表单添加了一个隐藏域设置为active值为YES,头句的目的就是打开页面探测一下active是否为空值,如果是就不执行,如果不是执行一下代码!

  

  这里的:

insertsql="select * from xhbook"

rs2.open insertsql,db,1,3

rs2.addnew

rs2("bookname")=trim(request.form("name"))

rs2("booktype")=trim(request.form("select"))

rs2("bookmoney")=trim(request.form("money"))

rs2("publishing")=trim(request.form("publishing"))

rs2("xhdate")=date1&"-"&date2&"-"&date3

rs2.update

  为用记录集来更新表xhbook

  rs.addnew和rs.update是互相组合的,一个添加记录,一个更新记录!中间5句就是从表单获取值来传递给数据库表单!

  

  这个很简单就是循环了选择表单的值,只要循环一下就可以更新输出了,这样很方便的!

  3.显示全部数据页面xh_qlook.asp和添加分类页面xh_add.asp

  下图为分页代码:

  

  好了我来讲解一下上面的代码:

set rs=server.createobject("adodb.recordset")

sql="select * from xhbook order by id desc"

rs.open sql,db,1,1

  为声明记录集用SQL输出所有XHBOOK记录。

rs.pagesize=10

  让每页面显示10条记录。

pagecount1=rs.pagecount

  把总页数赋值给pagecount1

if request.querystring("pagenum")=0 or request.querystring("pagenum")="" then

pagenum=1

else

pagenum=request.querystring("pagenum")

rs.absolutepage=trim(request.querystring("pagenum"))

end if

  以上代码是判断页面的参数,如果是零或者空值就赋值1。

rs.absolutepage=trim(request.querystring("pagenum"))

  赋值给当前页面的数值!

  还有一点重要的要讲解的分页就是在循环输出的时候,代码如下:

<%do while not rs.eof and i<=10%>

<%=rs("bookname")%>

<%=rs("booktype")%>

<%=rs("publishing")%>

<%=rs("bookmoney")%>元

<%=rs("xhdate")%>

<%

i=i+1

rs.movenext

loop

%>

  必须声明一个变量I,这样才能保证循环次数!

  

  这段代码就是分页了,赋值给首页的数值是1,尾页的数值就是原来赋值的PAGECOUNT1

  剩下的就是上页和下页了,我做了判断,看是否给予连接代码中大家可以看到。

<%if pagenum>1 then%>

>上一页

<%else%>

上一页

<%end if%>

<%if pagenum < trim(pagecount1) then%>

>下一页

<%else%>

下一页

<%end if%>

  上页就用当前值-1,如果下页就+1,主要是通过querystring传递的!

  好了开始讲解添加新分类页面xh_add.asp,其实这个页面就是添加新分类页面!就是一个递交页面。大家看看页面代码一下就明白了!

  4.删除分类页面xh_del.asp和添加分类页面booktypesave.asp

  

  上述图片的核心句代码就是这个:

booktype=trim(request.form("booktype"))

  传嗲的参数给booktype,然后传递给下面的SQL语句,让SQL能完整执行!

sql="select * from xhbooktype where booktype='"&booktype&"'"

  

  这段代码就是判断xhbooktype中是否有相同的分类!

if not rs.eof or not rs.bof then

  判断指针是否到头或者到尾。

  如果找到相同的记录就输出。

response.write ""

  并且返回原来页面从新添加!

  如果没有就更新记录,执行:

rs.addnew

rs("booktype")=booktype

rs.update

  添加新分类,上节讲了这个东西,大家不会忘记吧!

  好了讲解一下删除页面吧!

  

  删除的主要原理就是以下2段代码。

id=request.querystring("id")

sql="delete * from xhbooktype where id="&id

  第一个ID主要是通过URL传递过来的参数。

  这个SQL语句是delete删除语句,他的where条件就是传递过来的ID值。

  想必大家可以明白吧!按照条件删除记录分类。

  但是大家别忘记要连接数据库文件啊!第一行

  为了方便用户还要在最后一行记得做个跳转页面。

response.redirect "xh_booktype.asp"

  这样用户可以继续添加或者转到其他页面~很方便吧。

  5.程序的核心:查询页面的制作和处理。

  这一节,我们就来讲解这个图书的最后一个关节,查询书籍信息!

  看看查询页面的规划。

  

  主要可以按照书籍名,分类,出版社,价格,出版日期查询,基本SQL语句的几个功能都可以用到!

  好了,大家来看看查询处理页面!

  

  由于这个代码比较复杂我无法界图上来,让我一句句分析给大家听听!

  首先:

set rs=server.createobject("adodb.recordset")

..

..

date33=trim(request("date33"))

date111=date1&"-"&date2&"-"&date3

date222=date11&"-"&date22&"-"&date33

  是获取页面传递的值过来的,为什么用request呢,为了自适应,这样有利于分页的时候参数传递!大家过会就明白了!

date111=date1&"-"&date2&"-"&date3

date222=date11&"-"&date22&"-"&date33

  两句的意思就是组合一个日期参数,我用了这么一个笨方法,如果大家有好的方法一定告诉我!价格参数我也是这么传递的!

  好了来解决这个查询语句吧~!贴处代码解决!大家不要眼花啊!

if len(bookname)<>0 and booktype<>"不清楚" and len(publishing)<>0 then

sql="select * from xhbook where bookname like '%"&bookname&"%' and-

booktype='"&booktype&"' and publishing like '%"&publishing&"%' and-

bookmoney>="&money1&" and bookmoney<="&money2&" and xhdate between #"&date111&"#-

and #"&date222&"# order by id desc"

end if

  意思是如果书名不为空,类别不为不清楚,出版社不为空就执行下面这个SQL..

  好了相同的意思,想必大家可以看明白下面3个SQL语句。

  我就不一句句废话的讲解了!

  只得一提的是,大家要了解SQL查询的条件,ID LIKE "%A%"这种模糊查询的方式,这是规范写法,还有通配符%,在ACCESS中是*,大家要牢记啊!

  好了下面开始写这个分页,这个东西当时可是浪费了我好多时间!

dim pagenum,i

i=0

rs.pagesize=5

pagecount1=rs.pagecount

if request.querystring("pagenum")=0 or request.querystring("pagenum")="" then

pagenum=1

else

pagenum=request.querystring("pagenum")

rs.absolutepage=trim(request.querystring("pagenum"))

end if

  这段代码和2讲里面的分页原理是相同的,赋值每页显示5条记录!

  然后把总野鼠赋值给pagecount1,I的赋值到后面会给大家讲解!

<%

do while not rs.eof and i<=5

%>

对应的

<%

i=i+1

rs.movenext

loop

rs.close

set rs=nothing

%>

  大家可以明白I的作用了吧,就是控制循环次数!

  好了大家看看这个分页的连接参数传递,比较繁琐,但是每办法必须这么写,首先是首页的连接。

response.write "

&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&-

date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"-

&date33="&date33&">首页"

  看明白了吗?主要是逐个的传递参数,原因就是分页后,跳转页面必须传递否则就会出现SQL找不到参数,必会出错!

  上页的代码写法一样,把赋值运算写上去就可以了!

response.write "

&"&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&money1-

="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11-

="&date11&"&date22="&date22&"&date33="&date33&">上一页 "

  主要功能就显示了,到此这篇教程我就写完了!

  代码演示

  代码下载

责任编辑:admin
相关文章