您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > ASP与ACCESS数据库建立连接(附源码).
前言:如何通过ASP与数据库建立连接是一个非常现实的问题,我尽量写得非常详细。相信看了这篇文章相信您已经能够写出类似的比较简单和实用的程序了。(一)数据库的选择:有许多的数据库你可以选择,SQLSERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。那么到底选择什么数据库最合适呢?其中SQLSERVER是服务器级的,足以应付每天上万次的访问量。对于非服务器级的数据库建议使用ACCESS97。因为:(1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。(2)ACCESS支持的SQL指令非常齐全。(3)ACCESSODBC驱动程序的效率非常高。虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。(二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。(1)首先建立ACCESS数据库customer.mdb(今后有用的)。建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。将表保存为客户(今后有用的,===看看图)。注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。建议今后做数据库时最好都加上这2项,不会没用的。此外,在保存表时ACCESS会询问是否建立一个住关键字,我们不需要它所以不必建立。还有:时间字段的默认值设成now(),即去系统当时的时间。同时将索引项设成有(允许重复),含义:WEB上极有可能同时存取数据,所以允许重复,索引设成有可以加快排序速度。===看看图(2)建立递交表单add.htm:源代码如下:例如爱喜千团网(换物网,物物交换网,闲置物品交易网,以物换物)添加数据库记录/titlemetahttp-equiv=Content-Typecontent=text/html;charset=gb2312/headbodybgcolor=#FFFFFFpalign=centerfontsize=5添加数据库记录/font/pformmethod=postaction=adddatabase.aspdivalign=centertablewidth=46%border=0trtdwidth=28%divalign=right公司名称:/div/tdtdwidth=72%inputtype=textname=CompanyName/td/trtrtdwidth=28%divalign=right联络人姓名:/div/tdtdwidth=72%inputtype=textname=CName/td/trtrtdwidth=28%divalign=right所在城市:/div/tdtdwidth=72%inputtype=textname=City/td/trtrtdwidth=28%divalign=right电话号码:/div/tdtdwidth=72%inputtype=textname=Tel/td/trtrtdwidth=28%divalign=right/div/tdtdwidth=72%inputtype=submitname=Submitvalue=Submitinputtype=resetname=resetvalue=Reset/td/tr/table/div/form/body/html这与普通的HTML没有任何区别,关键部分已经用黄色标记了。递交方法用POST,递交后处理的程序是adddatabase.asp(下一步就重点讨论它)。还有就是给每一个项目取一个名字(NAME,后面有用)。(三)关键部分:建立与数据库的联系并将表单中收集到的信息添加到ACCESS数据库中。ASP代码放在〈%和%之间。%CompanyName=Request(CompanyName)CName=Request(CName)City=Request(City)Tel=Request(Tel)以上,首先取得表单中填写的数据,使用ASP的Request对象非常容易可以实现数据的收集。双引号中的就是上一步建立的各个项目的名字(NAME)。所以今后为每个项目起名字是个好习惯,尽管有时候并不一定用得到。这样取得的数据就保存在等号坐侧的变量中了。IfCompanyName=OrCName=OrCity=OrTel=Then'Response.Writehtmlbodycenterfontsize=5请将资料填写完整。/font/center/body/htmlResponse.Redirecterror.htmResponse.EndEndIf这里是检测各个项目是否输入了东西,如果为空则不往下继续执行,显示错误信息。注意:你可以使用两种方法。我都列出了。方法一:使用Response.Write方法写一个出错页面,类似于javascripts的document.write写法,只是ASP使用Response.write罢了。方法二:使用Response.Redirect方法导向出错页面error.htm。我在方法一的代码前加上单引号表示注释。(ASP中表示注释用单引号')。setdbconnection=Server.CREATEOBJECT(ADODB.CONNECTION)DBPath=Server.MapPath(customer.mdb)dbconnection.Opendriver={MicrosoftAccessDriver(*.mdb)};dbq=&DBPath(1)建立Connection对象:dbconnection,建立一个连接(Connection)是数据库存取的开始。我们使用ASP的内建对象方法Server.Createobject建立与数据库的连接。ADODB是ASP的数据库存取组件,不必担心只要有ASP就有它了,是内置的。(2)使用dbconnection.open方法打开数据库customer.mdb。driver参数语法:driver={MicrosoftAccessDriver(*.mdb)}必须这么写。告诉系统使用ACCESSODBC驱动处理。dbq参数用来指定打开的数据库文件,它必须是完整的路径。例如c:inetpub,我们使用Server.MapPath的方法取得数据库的完整路径。Setrs=Server.CreateObject(ADODB.Recordset)建立Recordset对象rs。Connection仅仅是建立了与数据库间的连接,要存取数据还应该再建立Recordset对象。rs.Open客户,dbconnection,adOpenDynamic,3打开数据库中的表客户(客户是表名)。语法:rs.open数据表名或SQL指令,已经建立的Connection对象(这里是dbconnection),锁定类型rs.AddNewrs(公司名称)=CompanyNamers(联络人姓名)=CNamers(所在城市)=Cityrs(电话号码)=Telrs.Update用AddNew向数据库请求添加数据。最后用Update写入。注意:等号右侧的变量保存着用Request取得的表单数据。双引号内的就是数据库的字段,应该与数据库的一致啊。否则会出错的。这样变量内的数据就写入了数据库对应的字段内了。Response.Writehtmlbodycenterfontsize=5祝贺,您的数据已经添加进数据库了!pResponse.Writeahref='viewdatabase.asp'查看数据/aResponse.Write/font/center/body/html写入成功后显示祝贺信息并建立查看数据库记录的连接。%htmlheadtitle/title/headbody/body/html(三)显示/查看数据库记录:%setdbconnection=Server.CREATEOBJECT(ADODB.CONNECTION)DBPath=Server.MapPath(customer.mdb)dbconnection.Opendriver={MicrosoftAccessDriver(*.mdb)};dbq=&DBPath建立与数据库的连接,与上同。SQL=select*from客户OrderBy时间DESCSETCustomerList=dbconnection.EXECUTE(SQL)%建立SQL查询语句,表示从客户表中查询所有记录,OrderBy时间DESC表示按时间降序排序,这样最后添加的信息再最上面显示。下面一句执行SQL查询并将结果返回给Recordset对象CustomerList。htmlbodyFONTSIZE=5center数据库记录/center/FONTCENTERTABLEBORDER=1trtd编号/tdtd公司名称/tdtd联络人姓名/tdtd所在城市/tdtd电话号码/td/tr%DOWHILENOTCustomerList.EOF%检测记录是否到了最后一条。EOF表示EndofFile。TRTD%=CustomerList(客户编号)%/TDTD%=CustomerList(公司名称)%/TDTD%=CustomerList(联络人姓名)%/TDTD%=CustomerList(所在城市)%/TDTD%=CustomerList(电话号码)%/TD/TR%=CustomerList(客户编号)%可以说是Response.Write方法的简写。将客户编号字段内的数据写入TD标签间。%CustomerList.movenextloop%如果还没有到最后一条则指针移动到下一条。用DoWhile...Loop循环逐一取得所有的记录。/TABLE/CENTERcenterinputtype=buttonvalue=添加数据/center/BODY/HTML缺陷:仅仅实现了最基本的功能。先不说其它功能,仅就数据的添加和查看功能来看,比较完美的还应该加入“分页功能”。否则数据大到一定程度显示全部数据基本上是不可能的。本期至此全部完毕。
本文标题:ASP与ACCESS数据库建立连接(附源码).
链接地址:https://www.777doc.com/doc-4776784 .html