admin 管理员组文章数量: 887021
2024年1月13日发(作者:access数据库的新手使用技巧)
基于ASP SQL的大学图书管理系统设计
目录
1 绪论 1
1.1 开发背景 1
1.2 开发工具的选用及介绍 1
2总体分析与设计 2
2.1系统分析 2
2.2 系统目标 2
2.3总体需求 2
2.4系统模块流程图 4
2.5数据库设计 4
3 详细设计 6
3.1 用户登陆页面 6
3.2图书查询页面 8
3.3统计超期 10
3.4数据库备份和还原 11
3.5图书添加 12
3.6用户管理 13
3.7最新添加的图书 15
3.8图书分类浏览 15
3.9给超期用户发消息提醒 15
4毕业设计小结 18
5致谢 19
6参考文献 20
1 绪论
当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,计算机被广泛应用于B/S系统环境。计算机的好处在于它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了安全性。
对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书信息而设计的。
1.1 开发背景
图书管理包括的图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书管理系统都是初步开始使用,甚至尚未使用计算机进行信息管理。以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。
基于这此问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。
1.2 开发工具的选用及介绍
1.2.1 ASP简介
Active Server Pages:是一套微软开发的服务器端脚本环境,ASP内含于IIS之中 , 通过ASP我们可以结合 HTML 网页、ASP 指令和 ActiveX元件建立动态、交互且高效的WEB服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
1.2.2 Dreamweaver简介
Dreamweaver是Macromedia公司最新推出的主页编辑工具。这是一个所见即所得主页编辑器,并带有站点管理功能,让你方便地设计和管理多个站点。而它最棒的地方就是支持最新的DHTML和CSS标准, 你可以用它设计出生动的DHTML动画、多层次的页面(layer)以及CSS样式表。
1.2.3 Microsoft SQL Server 2000简介
SQL是英文(Structured Query Language)的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL
Server, Access等都采用了SQL语言标准。
SQL语言有以下几个优点:
1 非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;1
所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
2. 统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。
3. 所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。
2总体分析与设计
2.1 系统分析
图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。
在数据库应用系统开发之前,对开发数据库的基本概念,数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。考虑到使用的方便性,程序用ADO技术来操作数据库,免去了注册DSN步骤。
因此本人结合上述要求对MS SQL Server 2000数据库管理系统、SQL语言原理、ASP程序设计,ADO数据库技术进行了较深入的学习和应用。
2.2 系统目标
(1)用户方便进行图书查询,图书浏览和图书分类浏览,进行图书借阅并了解自己的借书情况和个人情况。
(2)用户在借书超期的情况下得到来自管理员的提醒。
(3)管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改和锁定(限制用户的正常使用功能,使其无法登陆)。管理员管理包括管理员信息的添加,删除,修改等。
(4)用户和管理员可以修改自己的密码,修改前需先核实自己的原始密码。
(5)未注册用户(游客)也可以浏览所有的图书信息和分类信息,但是无法借阅。
(6)实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。
(7)考虑程序执行操作时可能出现的情况,比如删除图书分类时该分类下存在图书,程序自动跳转该分类图书查看。删除某个用户,如果存在借书记录则不允许删除,跳转到该用户的借书记录。等待管理员确认该用户所借图书已经全部归还之后才允许删除该用户信息。
2.3总体需求
图书管理系统是一项复杂系统工程,要从实际出发,对实际情况进行客观的分析,深入了解需求。系统利用Asp与数据库结合的技术建立数据库管理系统,采用交互式的动态的Asp页面来实现。需求调查是为了研究系统设计的开发途径和方法。同时它也是进行概要设计和详细设计的基础,是进行内部维护和测试的依据。具体分析如下:
添加操作:在执行操作时首先都要先检查是否已经输入以及数据库中是否已经存在输入的数据,如果存在会报错,程序返回上个页面,不执行添加操作。
删除操作:考虑到了字段在不同表中可能会同时存在的情况,比如:删除图书分类时候该分2
类下有书或者删除用户时该用户有借书记录,这样的情况下程序会给出提醒并跳转到该分类下的所有图书查看或者是该用户的全部借书查看。直到这种关联取消掉之后才允许进行删除这样的危险操作。
查询操作:考虑到了模糊查询的实现, SQL语句中用“like”,还有组合查询,通过对用户输入情况的判断来确定SQL语句的最终形式,比如用户查询时并未输入图书名字,就是名字匹配任意字符,那么程序给数据库的SQL语句就会是name like ‘%’。组合查询的实现也是程序判断用户所做的选择或者输入,在SQL语句中实现的。
超期统计:假定借书超期的限制是三十天,借书记录中的所有数据的借书时间如果不在当前服务器时间减去三十天和当前服务器时间之间,那么这条借书记录就属于超期记录了。由用户借书记录中的用户编号到用户表中查找该用户。
发送消息:往消息表中添加数据,该数据包含用户名,用户超期的图书,超期时间,罚金等相关警告信息。当用户正常登陆主页后,程序自动检查消息表中是否存在该用户的记录,如果有要给出提示,但是没有强制用户必须查看。
数据库备份和还原操作:程序只要告诉SQL 服务器执行备份和还原SQL语句就可以实现,在还原时程序还在使用系统数据库,此时执行还原操作会因为没有排它使用权出现错误,所以应告诉SQL 服务器使用另外的一个数据库,程序中用的是:use master。还原操作时用FSO组件首先检查备份数据库文件是否存在,如果不存在则给出提示回到上个页面。所有条件都允许后则执行还原操作,如果数据库数据比较多,备份和还原的时间都可能会比较长。
3
2.4系统模块流程图
2.4.1 系统登陆流程图
2.4.2 用户流程图
2.4.3 管理员流程图
2.5数据库设计
登陆页面
游客操作页面 用户操作页面 管理员操作页面
用户操作页面
消息
查看
修改
密码
退出
登陆
管理员操作页分类 图书
面
查看 查询
全部
图书
查看借书详情
还书
修改
密码
备份还原数据库
表2.5.1 管理员
字段
ID
name
pwd
类型
数字
文本
文本
所有图书及分类
查看
长度
50
50
图书
查询
统计
超期
添加,删除
分类
添加,删除图书
用户,管理员相关
必填字段
是
是
允许空格
否
否
备注
id主键
名字
密码
表 2.5.2 图书信息
字段
id
booktype
类型
数字
文本
长度
50
必填字段
是
允许空值
否
否
备注
id主键
图书类别
4
publishing
bookmoney
pdate
bookname
num
文本
数字
日期时间
文本
数字
50
20
50
8
是
是
是
是
是
否
否
否
否
否
出版社
货币
出版时间
图书名称
图书数量
表 2.5.3 图书类别
字段
id
booktype
类型
文本
长度
50
必填字段
是
允许空值
否
备注
id主键
图书类别
5
表 2.5.4 借出信息
字段
id
bid
time
uid
表2.5.5 消息表
字段
id
content
uid
表2.5.6 用户表
字段
id
name
pwd
lock
loan_num
类型
数字
文本
文本
是/否
数字
长度
50
50
20
必填字段
是
是
是
允许空值
否
否
否
否
备注
id主键
名字
密码
是否锁定
借书数量
类型
数字
文本
数字
长度
500
20
必填字段
是
是
允许空值
否
否
否
备注
id主键
消息内容
用户编号
类型
数字
数字
日期时间
数字
长度
50
20
必填字段
是
是
允许空值
否
否
否
备注
id主键
图书编号
借书时间
用户编号
3 详细设计
3.1 用户登陆页面
该页面用于用户登陆,包括游客,用户和管理员。成功登陆则取得用户的session用于以后的操作权限认定。程序执行时首先判断用户类型,如果是游客则对session赋值为游客类型,然后直接进入主页;如果不是游客则执行查询语句,看数据库中是否存在这样的用户名和密码,根据选择用户类型的不同在不同的表中进行操作,成功则进入主页,否则提示输入错误。
6
截图如下:
图3.1.1 用户登陆
代码:
<% if request("login")<>"" then
if request("usertype")<>"" then '用户类型不空,核实数据真实
If Request("usertype")="user" Then
sql = "select * from u where name='"&request("name")&"' and pwd='"&request("pwd")&"'"
Else
sql = "SELECT * FROM admin WHERE name='"&Request("name")&"' and
pwd='"&Request("pwd")&"'"
End If
Set rs=e(sql)
If not Or Not Then '输入数据存在
If Request("usertype")="user" Then
If rs("lock") Then
""
else
Session("usertype")="user"
Session("userid")=rs("id")
Session("name")=rs("name")
ct("")
end if
Else
Session("usertype")="admin"
Session("adminid")=rs("id")
Session("name")=rs("name")
ct("")
End If
Else
""
End if
else'用户类型空
7
""
end if
end if
%>
3.2图书查询页面
该页面用于用户的图书查询,利用查询语句的like %替代任意长度字符实现了模糊查询。所有查询的字段用户都可以不输入,如果输入了某个数据,程序执行时自己会判断,输入了就会加上相应的SQL语句。考虑到使用方便性,图书类型,价格范围,出版日期都无须用户输入,已经设定了合理的初始值。图书类型如果不做选择就默认在所有图书类型中查找。考虑到找到的记录可能会很多,引入了分页显示,在记录集循环显示的时候引入参数i来实现,设定i<10,初始值为0,这样每页显示的记录数为10条。
图3.2.1图书查询
代码:
<%'定义记录集和变量
set rs=object("set")
bookname=trim(request("bookname"))
booktype=request("booktype")
publishing=trim(request("publishing"))
money1=trim(request("money1"))
money2=trim(request("money2"))
date1=trim(request("date1"))
date11=trim(request("date11"))
date2=trim(request("date2"))
date22=trim(request("date22"))
date3=trim(request("date3"))
date33=trim(request("date33"))
date111=date1&"-"&date2&"-"&date3
date222=date11&"-"&date22&"-"&date33
'查询的实现
sql="select * from book where 1 "
8
if booktype<>"" then
sql=sql+"and booktype like '%"&booktype&"%'"
else if bookname<>"" then
sql=sql+"and bookname like '%"&bookname&"%'"
else if publishing<>"" then
sql=sql+"and publishing like '%"&publishing&"%' "
end if
end if
end if
sql=sql+"and bookmoney>='"&money1&"' and bookmoney<='"&money2&"' and pdate between
'"&date111&"' and '"&date222&"' order by id desc" sql,db,1,3
if or then
"对不起没有搜索到记录"
else
'页面显示
dim pagenum,i
ze=10
pagecount1=unt
if tring("pagenum")=0 or tring("pagenum")="" then
pagenum=1
else
pagenum=trim(request("pagenum"))
tepage=trim(request("pagenum"))
end if
%>
<%’分页实现
"总共"&pagecount1&"页,当前"&pagenum&"/"&pagecount1&", href=?pagenum=1&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"&date33="&date33&">首页
%>
<%
if pagenum>1 then
else
"上一页 "
end if
if pagenum < trim(pagecount1) then
9
else
"下一页"
end if
%>
<%
%>
3.3统计超期
方便管理员清楚图书借出后的归还情况,并可以给超期的用户发送消息提醒,或者锁定该用户,使其无法登陆系统。超期判定用dateserial()函数来实现将当前系统时间的格式转化为YY-MM-DD,这样方便后面的日期比较操作。设置一个变量来代表当前系统时间减去三十天,如果用户借书的时间不在这两个时间之间那么就是超期。页面开始首先进行管理员身份核实,用到了前面登陆页面说的session。点击左边菜单的统计超期后系统自动完成统计,并将结果显示在右边,管理员可以进行的操作有:锁定,给单个用户发消息,群发消息。截图如下:
图3.3.1 统计超期
代码:
<%':从loans表导出时间超期的数据 更改系统时间来实现超期~ 管理员验证 分页显示 管理员发消息提醒还书
if session("usertype")<>"admin" then
""
end if
dim loan_time '现在时间和借书时间相差三十天则超期
loan_time = dateserial(year(date),month(date),day(date)-30)'转换日期格式2007-3-31,函数参考
sql1="select * from loans"
set rs1=e(sql1)
sql2="select me as b_name,pe as booktype,* from loans,u ,book where
not between #"&loan_time&"# and #"&date&"# and = and
= "
10
set rs2=e(sql2)
'sql3="select * from u where id='"&(rs2("uid"))&"'"
'set rs3=e(sql3)
%>
3.4数据库备份和还原
为了防止因意外对系统数据库造成的破坏,设置了数据库的备份和还原操作,其实现是用SQL本身的备份和还原功能,程序只要告诉SQL服务器执行就可以了,还原还首先检查是否存在备份文件,如果没有则报错并终止还原操作,执行还原操作时因为当前系统的数据库正在使用,无法被还原,所以要先选择SQL服务器上的其他数据库为当前活动数据库,系统用use master来实现将当前正在使用的数据库更改为master数据库。系统设定备份文件存放在IIS主目录下,后缀是.BAK,方便管理员查看。
截图:
图3.4.1数据库备份和还原
代码:
<%
if request("do")="bak" then
dim path
path=h("./")
'""&path&""
sql="backup database 谢贵文 to disk='"&path&"谢贵文.bak' with init"
e(sql)
""
end if
%>
<%if request("do")="restore" then
'判断备份文件是否存在
set iFso=Object("stemObject")'FSO组件
dim bak_path
bak_path=h("./谢贵文.bak")
if not ists(bak_path) then
""
else
sql1="use master"'获得排它访问权 断开与当前系统数据的连接
sql="restore database 谢贵文 from disk='"&h("./")&"谢贵文.bak' "
e(sql1)
11
e(sql)
""
end if
end if'页面(-1)时自己会重新连接数据库
%>
3.5图书添加
实现图书添加功能。当管理员需要添加图书时,通过管理菜单点击“添加图书”就进入这个页面,考虑到输入的方便性图书分类和出版时间都可以进行选择,无须手工输入。图书添加操作要求全部数据都必须输入,否则报错。添加操作实际上是将数据写入数据库,写入新图书信息之前首先检查图书名是否重复,重复则报错返回上个页面,输入正确而且数据库中原本没有这样的数据则执行写入操作。截图如下:
图3.5.1 图书添加
代码:
<%'图书增加
if request("query")="book_add" then
sql="select * from booktype"
set rs=e(sql)
%>
<%
if request("active")="" then
else
if request("name")="" or request("money")="" or
request("publishing")="" or request("select")="" then
""
else
set rs2=object("set")
date1=request("date1")
date2=request("date2")
date3=request("date3")
qdate=date1&"-"&date2&"-"&date3
sql="select * from book"
12
request("num")="" or
sql,db,1,3
rs2("bookname")=trim(request("name"))
rs2("bookmoney")=trim(request("money"))
rs2("num")=trim(request("num"))
rs2("publishing")=trim(request("publishing"))
rs2("pdate")=date1&"-"&date2&"-"&date3
rs2("booktype")=trim(request("select"))
""
end if
end if
%>
3.6用户管理
实现用户管理全部功能,包括查看全部用户,添加,修改,删除,锁定,查看其借书记录。其中锁定针对于借书超期用户,管理员可以在超期统计页面知道哪些用户借书超期。添加用户时程序首先判断是否已经存在这个用户名,存在则终止操作,返回上个页面;删除用户时如果该用户存在借书记录则不允许删除,程序跳转到该用户的借书记录页面。更改操作同样考虑到了用户名重复的问题,避免混淆。截图如下:
图3.6.1 用户管理
代码如下:
<%’从数据库导出所有用户数据
if request("action")="" then
sql="select * from u"
set rs=Object("set")
sql,db,1,3
'实现用户查看,添加,删除,修改等...
%>
<%'添加新的用户
if request("action")="add" then
if request("add")<>"" then'检查是否重名
set chk=e("select * from u where name='"&trim(request("name"))&"'")
if or then '插入u表
rs("name")=request("name")
rs("pwd")=request("pwd")
""
else ""
13
end if
else
%>
<%'删除用户
if request("action")="del" then
if request("id")<>"" then
qq="select count(*) as xx from loans where uid="&request("id")
set q=e(qq)
if q("xx")>0 then
""
else
sql="delete * from u where id="&request("id")
e(sql)
""
end if
else
%>
<%'更改用户 过程:如果有更改请求,如果有ID,导出数据,如果确认更改,执行检查过程;检查成功则更新 否则返回错误。该功能已经包含用户锁定功能的实现。
if request("query")="type_mod" then
if request("id")<>"" then
sql="select * from u where id="&request("id")
set rs1=Object("set")
sql,db,1,3
if request("mod")="yes" then'确认请求
set chk=e("select * from u where name='"&request("name")&"'and
id<>"&request("id"))
if not then
""
()
else
if request("islock")="True" then
qq="update u set name='"&request("name")&"',pwd='"&request("pwd")&"',lock='1' where
id="&request("id")
else
qq="update u set name='"&request("name")&"',pwd='"&request("pwd")&"',lock='0' where
id="&request("id")
end if
e(qq)
""
end if
else
%>
14
3.7最新添加的图书
放在框架的右边,主要是向所有人展现最新增加的图书信息,方便所有人的使用。其实现是从数据库book表中导出top 10个数据。截图如下:
图3.7.1 最新添加的图书
代码:
<%'最新图书数据导出
sql="select top 10 * from book order by id desc "
set rs=Object("set")
sql,db,1,3
%>
3.8图书分类浏览
放在首页的右边,起着导航作用,实现所有图书分类的查看,使得所有人都可以方便的浏览自己感兴趣的图书分类下的书,点击图书分类名就进入了该分类下的所有图书浏览。截图如下:
图3.8.1 图书分类浏览
代码:
<%'图书类型到处
sql1="select * from booktype order by id desc "
set rs1=Object("set")
sql1,db,1,3
%>
3.9给超期用户发消息提醒
15
主要功能是实现管理员可以对借书超期的用户进行提醒,其操作是往msg表里添加数据,当用户正常登陆后系统会检查msg表内是否有该用户的消息数据,如果有则会自动给出提醒,提醒用户查看消息。截图如下:
图3.9.1 给超期用户发消息
代码:
<%if request("act")="all_send_msg" then
dim loan_time '现在时间和借书时间相差三十天则超期
loan_time = dateserial(year(date),month(date),day(date)-30)'转换日期格式2007-3-31
sql2="select me as b_name,pe as booktype,* from loans,u ,book where
not between #"&loan_time&"# and #"&date&"# and = and
= "
set rs2=e(sql2)
dim uid,content
uid=rs2("uid")
("提交的数据(测试是否设置好)
")
do while not
uid=rs2("uid")
content=""&rs2("name")&",你借的{"&rs2("b_name")&"}一书已经超期"&datediff("d",rs2("time"),date())-30&"天了,快点还咯
"
(uid&":"&content)'测试是否设置好了
sql="insert into msg(content,uid) values('"&content&"','"&uid&"')"
e(sql)
xt
loop
""
else
"提交的数据(测试是否设置好)
"&request("content")&""
sql="insert into msg(uid,content) values('"&request("uid")&"','"&request("content")&"')"
e(sql)
""
end if
%>
16
图3.9.2 用户登陆后的消息提醒
代码:
<%if session("usertype")="user" then
uid=session("userid")
'msg导出数据,如果有的话
sql="select count(*) as msg_num from msg where uid="&uid
set rs=e(sql)
if rs("msg_num") >=1 then
else
("我的信箱")
end if
%>
17
4毕业设计小结
经过几个月的努力,毕业设计基本完成了。在毕业设计的实践中,学到很多有用的知识,也积累了不少宝贵的开发经验。比如用ADO操作数据库,SQL语句的应用等。本设计通过自己的努力。基本满足了图书管理的基本需要,实现了用户使用的方便以及管理员管理的方便,在界面上力求做到简单实用,在操作方面尽量做到满足用户使用的习惯,但由于自己的水平有限和时间的不足,在很多方面还不完善,有些功能没有在全局上把握好,比如一些功能函数可以在一个文件中定义,具体页面需要用到再直接引用,SQL语句的执行效果也存在效率不高的问题,关于图书管理的所有操作集中在一个页面实现,出现了一些混淆,程序更改,测试时很不好等。在今后的学习和工作当中继续完善此系统,使其功能更加强大,满足用户的更多需求。
毕业设计是将自己大学四年所学的知识的一个检验的过程,在这个过程中可以体验到自己去尝试的快乐,也有功能实现不了的困惑,老师,同学的宝贵意见都给了我很多帮助,在此十分感谢他们。通过毕业设计自己动手可以增强实践能力,而且对系统开发有了一个比较清楚的了解,知道了应该怎么样去分析解决问题,收获很多。
18
5致谢
在任疆红老师悉心的关怀和大力的支持下我的论文才能得以顺利完成,在这里我衷心的感谢老师对我的关怀和支持。老师认真负责的工作态度、严谨的治学风格,使我深有感触;是在老师的帮助下,我才能顺利的完成这个系统。
19
6参考文献
[1] 王珊.数据库系统原理教程[M] .北京:清华大学出版社,2003,56.
[2] 求是科技. ASP数据库开发技术与工程实践[M] .北京:人民邮电出版社,2004,131.
[3] 刘意成.SQL实战演练[M] .北京:西安电子科技大学出版社,2004,79.
[4] 周绪.SQL Server 2000中文版入门与提高[M] .北京:清华大学出版社,2001,36.
[5] 李存斌.数据库应用技术[M] .北京:中国水利水电出版社,2001,73.
[6] 罗运模. SQL Server 2000数据仓库应用与开发[M] .北京:人民邮电出版社,2001,179.
20
版权声明:本文标题:计算机毕业论文_基于ASP SQL的大学图书管理系统设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705091545h472848.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论