asp+access

Asp与Access数据库连接入门
2008-11-04 14:54
     静态网页是指直接或间接制作成html的网页,这种网页的内容是固定的,修改和更新都必须要通过Dreamweaver、Frontpage等网页制作工具,而且只要修改了网页中的一个字符或一个图片都要重新上传一次覆盖原来的页面。
    动态网页是以数据库技术为基础,以.asp、.jsp、.php、.perl、.cgi等形式为后缀,通过脚本将网站内容动态存储到数据库,用户访问网站是通过读取数据库内容来动态生成网页的方法。
静态网页和动态网页最大的区别,就是动态网站比静态网站更新起来更加容易。静态网页如果想增加一篇文章,就需要重新制作一个新的网页并上传;而动态网页只需用管理者身份登陆到网站的后台网页,像填空题一样填入文章内容提交就可以了。也就是说,即使网站录入人员对网页制作一窍不通,也一样能管理好一个网站。
    我们有时打开一个网页,会发现IE地址栏中网页的名字有的叫*.asp,有的叫*.htm,这个.asp就是典型的动态网页。下面我就通过一个例子来学习一下用ASP如何实现数据的读取、填加、修改和删除。
一.ASP运行环境的配置
ASP网页若想正常测试,必须安装IIS。
WIN2000 server/WIN2000 advance server都是默认安装的,如果在安装时没选择的话,也按照下面的步骤。
开始->控制面板->添加/删除程序->添加删除WINDOWS程序组件,在里面把internet 信息服务(IIS)打上勾,然后插入WINDOWS安装光盘,点击下一步,这样就开始安装IIS,安装过程就不多说了,也是普通软件安装一样,不是点下一步就是点完成和确定。
开始配置IIS。开始->控制面板->管理工具->internet 信息服务,打开之后就到了IIS的控制台,点计算机名前面的+号展开,再点网站前在的+号展开,这时就有一个默认网站,这里就是我们要配置IIS的关键地方了。右击“默认网站”,在弹出菜单里选择“属性”这时就会弹出“属性”选顶卡。在“网站”选项卡下选择IP地址为本机的IP地址,如:127.0.0.1,选择“主目录”选项卡,本地路径就是你的网站所在路径,这里你可以点浏览更改到你想设置的目录下,默认是:X:/inetpub/wwwroot(X:表示系统盘)。这些设置完后就转到“文档”选项卡,首先要在“启用默认文档”前面打勾,默认是打勾的。点击“添加”,添入index.asp,这是你网站默认打开的主文件名,点应用、确定就返回到IIS控制台。
IIS我就简单的介绍这些,其它的高级设置请朋友们自己试试。
二.动态网页中数据的读取
比如,有一个新闻网站,数据库中已有许多新闻,我们要把它的最新的10条新闻列到网页中,如何办到呢?
首先,我们要了解一下网站数据库的结构,一般ASP常和access数据库结合,例如本例中数据库的名字叫news.mdb,数据库中有一个表构成,表名叫news,news表的结构如下:
字段名 字段类型 备注
Id 自动编号 新闻自动编号
Name 文本 新闻标题
Content 备注 新闻内容
date 日期 新闻日期,默认值为当前日期date()
在表中先填加几条供测试用的文章。
在做新闻网页之前我们首先需要建立一段每次都要调用的代码,就是在每次读数据之前都要先找到数据库的位置,并打开数据库。用记事本新建一个conn.asp的文件,在其中输入:
<%dim conn,connstr,db
db="news.mdb" ' 数据库文件位置
connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" ‘ 打开数据库
set conn=server.createobject("ADODB.CONNECTION") ' 打开数据表
conn.open connstr %>
conn.asp因为每次读数据库都要用到,所以把这段代码单独做成文件,以便于用到时直接调用,调用方法是:<!--#include file="conn.asp" --> 此调用一般放在代码最上方。
现在我们就用记事本建立一个名为top10.asp的文件,此文件就是用来显示数据库中最新的10条新闻的网页。用记事本在top10.asp文件中写入:
<!--#include file="conn.asp" -->
<%set rs = server.createobject("adodb.recordset")
sql="select top 10 * from news order by id desc " ' 选择news表中最新10条
rs.open sql,conn,1,1
if rs.eof and rs.bof then ‘ 如果news表是空的即无数据,那么
response.write "没有新闻!" ‘ 在网页上输出:“没有新闻”四个字
else ‘ 否则
do while not rs.eof ‘ 当记录未结束时,循环
response.write rs("name")"<br>" ‘ 在网页上输出news表中的新闻标题字段
rs.movenext ‘ 移到下一条记录
loop ‘ 回到上方的do语句,继续循环
end if ‘ 条件语句结束
rs.close ‘ 关闭数据集
set rs = nothing
conn.close ‘ 关闭数据库
set conn = nothing%>
这样,我们就完成了页面中显示最新10条新闻的代码,现在我们就可以利用IIS+IE进行ASP的调试了。打开IE,在地址栏里输入: http://127.0.0.1/top10.asp,IE中就会显示数据库中news表的最新10条新闻标题了。
这种代码一般显示在网站首页,同样,数据库中如果有其它表,你也可以用同样的方法显示最新的几条。
需要大家注意的是:如果表中的数据过多,不要在一个网页显示表中的全部记录,这样做不仅会造成网页过长,而且读取速度也会变慢,如果想读取记录提倡大家使用分页显示的方法。
三.动态网站中数据的填加
动态网站有一个最大的优点就是可以像填空题一样输入所填加的新文章,可是如何做到呢?
下面我继续向大家介绍如何利用网页向数据库中填加新记录。一般填加记录只有管理员才有权利,但为了让大家明白其中的原理,我们做一个任何人都可填加记录的例子。
还以上文中用到的数据库为例,我们先用FP或DW来制作一个填加新闻的网页addnews.asp,效果如下图:

上图中标题文本框的名称为name,内容文本框名称为content,都包含在表单中,有的朋友可能要问了,为什么网页中没有news表中的ID和date字段?这是因为ID字段是自动编号,你每填一条记录,ID号都会自动生成,无需干预,而日期date我们在上文中提到,其默认值已设为date(),是填加记录时的当前日期,也无需干预。
现在我们用记事本或FP、DW的代码状态打开addnews.asp,在表单处将原来的表单代码改为:<form method="post" action="addnews.asp?action=add"> 此意义为人们在提交表单时执行action=add这个动作中的代码,然后在代码最前端插入如下代码:
<!--#include file="conn.asp" -->
<%if Request("action")="add" then ' 如果action=add(即用户点提交后)那么
name=Request("name") ' name等于从文本框name获取的值
content= Request("content") ' content等于从文本框content获取的值
Set rs = Server.CreateObject("ADODB.Recordset") ' 打开数据库
sql="select * from news " ' 读取表news
rs.open sql,conn,1,3
rs.addnew ' 填加新记录
rs("name")=name ' 让字段name的值等于name
rs("content")=content ' 让字段content的值等于content
rs.update ' 更新数据
rs.close '关闭数据集
response.write "文章添加成功!" ' 显示添加成功的信息!
end if ' 条件语句结束
%>
用IE回到top10.asp看一看,新填加的记录是不是已经在前面显示出了?这让你想到那些留言本了吧?这其实和留言本的道理是一样的。
四.动态网页中数据的修改
如果文章在填加时不小心出现失误,填加成功后又如何修改呢?
我们先在top10.asp中填加一个文章修改的链接,将其中的
response.write rs("name")"<br>" 这一行修改为:
response.write rs("name")&"<a href=edit.asp?id="&rs("id")&">修改</a><br>"
此行的意思是,每条新闻标题后面加了一个修改链接,链接到edit.asp。
用记事本新建一个edit.asp文件,样式同addnews.asp一样,含一个表单,两个文本框,分别为name和content。但要将表单部分修改一下,修改为:
<form method="post" action="edit.asp?action=edit&id=<%=id%>">
意思是,当人们提交表单时就会将相应的ID记录提交给edit.asp中action为edit时的代码。
并同addnews.asp一样,要在代码最上方加入如下代码:
<!--#include file="conn.asp" -->
<% id=request("id") ' 获取需修改记录的ID号
if Request("action")="edit" then ' 如果action=edit(即用户点提交后)那么
name=Request("name") ' name等于从文本框name获取的值
content= Request("content") ' content等于从文本框content获取的值
Set rs = Server.CreateObject("ADODB.Recordset") ' 打开数据库
sql="select * from news where id="&id " ' 读取表中ID为所获取id的那条记录
rs.open sql,conn,1,3
rs("name")=name ' 让字段name的值等于name
rs("content")=content ' 让字段content的值等于content
rs.update ' 更新数据集
rs.close '关闭数据集
response.write "文章修改成功!" ' 显示修改成功的信息!
end if ' 条件语句结束
%>
与填加记录不同的是,在修改数据之前,先要读出数据库中原来新闻的内容,所以我们需要先把此记录的数据读出,才可继续修改,所以要接着加入以下代码:
<%Set ars = Server.CreateObject("ADODB.Recordset") '打开数据库
ars.Open "Select * From news where id="&id, conn,3,3%> ' 从news表中读取id号为所修改新闻的ID号的那条记录
%>
然后将两个文本框的默认值修改一下,name的默认值改为:<%=ars(“name”)%>,content的默认值改为:<%=ars(“content”)%>,保存。
在IE中我们测试一下top10.asp,每条新闻后出现了“修改”链接,点击修改后,就会进入到地址为edit.asp?id=“数字”的网页中,地址中id后面的数字表示你要修改的那一条记录的id号,它可以通过request(“id”)语句来读取。
五.删除数据库中的记录
如果你误加了一条新闻或不小心加了两条同样的记录,如何将其删除呢?
下面我们接着介绍删除一条记录的方法。
为了测试方便,我们将上文中的top10.asp中的“修改”链接后,再加入一个“删除”链接。把原来的
response.write rs("name")&"<a href=edit.asp?id="&rs("id")&">修改</a><br>"
这一行修改为:
response.write rs("name")&"<a href=edit.asp?id="&rs("id")&">修改</a><a href=del.asp?id="&rs("id")&">删除</a><br>"
看到上面的代码,大家应该明白了,现在我们要建立一个删除网页del.asp。
并在其中写入代码:
<!--#include file="conn.asp"-->
<%id = Request("id") ' 获取所删除记录的ID号
Set del=Conn.Execute("Delete * From [news] Where ID=" & id)%> ' 删除news表中所获取的那条id记录
<%response.redirect "top10.asp"%> ' 返回top10.asp网页
在IE中测试top10.asp。
以上我们介绍了ASP网页中数据的读取、填加、修改和删除的基本方法,我将此实例的源代码及数据库打包至: http://www.cuizhong.cn/test/asp.rar 有需要朋友可以下载来看,并将此文制作成电子书,一并打包,希望能与您分享。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值