ASP访问ACCESS数据库
fsxss 2003.12.12.
通过ASP与ACCESS数据库建立连接
1.建立用户注册表单 yfzc.asp
提交方法用POST,提交后处理的程序是 clzc.asp。
<form method="post" action="clzc.asp">
<input type="text" name="yfxm">
<input type="submit" name="Submit" value="提交">
2.将表单中收集到的信息赋值给变量
yfxm = Request("yfxm")
3.检测某一项目为空时,则不往下继续执行,显示错误提示:填写资料不完整。
If yfxm = "" Then
Response.Write "……填写资料不完整……"
4.创建数据库连接对象 Connection
set cn=Server.CreateObject("ADODB.Connection")
cn.open"PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="&server.MapPath("/fsxss/mdb/wssdk.mdb")
5.创建记录集Recordset对象rs
set rs=Server.CreateObject("ADODB.Recordset")
6.打开用户资料表,用AddNew向数据库请求添加数据,用Update写入
rs.open"用户资料表",cn,adOpenDynamic,3
rs.AddNew
rs("用户姓名") = yfzm
rs.Update
7.如果注册成功,则返回用户编号和用户填写的用户资料。
8.建立SQL查询语句,执行SQL查询,查询用户资料表的结果赋值给变量 SQL
SQL="select * from 用户资料表"
SET rs=cn.EXECUTE(SQL)
9.循环输出记录
<% DO WHILE NOT rs.EOF %>
<% =rs("用户编号") %>
<% =rs("用户姓名") %>
10.移到下一记录
<% rs.movenext
loop
%>
一、数据库的选择:
1.SQL SERVER:服务器级数据库足以应付每天上万次的访问量。
2.ACCESS97:非服务器级数据库。
IIS4有ODBC驱动支持ACCESS数据库的存取。OFFICE97带有ACCESS97。
二、ACCESS WEB数据库存取方法
1.网上书店库 wssdk.mdb 中的用户资料表字段:
用户名称、联络人姓名、所在城市、电话号码、用户编号、时间。
用户资料数表的用户编号、时间字段供排序用。
时间字段的"默认值"设成"now()"取系统当前时间。
索引项设成"有(允许重复)",WEB上有可能同时存取数据,要允许重复,
索引设成"有"可以加快排序速度。
2.建立提交表单 add.asp
提交方法用POST,提交后处理的程序是 adddatabase.asp。
<html>
<head>
<title>添加数据库记录</title>
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font
size="5">添加数据库记录</font></p>
<form method="post" action="adddatabase.asp">
<div align="center">
<table width="46%" border="0">
<tr>
<td width="28%"><div align="right">公司名称:
</div></td>
<td width="72%"><input type="text" name="CompanyName"></td>
</tr>
<tr>
<td width="28%"><div align="right">联络人姓名:
</div></td>
<td width="72%"><input type="text" name="CName">
</td>
</tr>
<tr>
<td width="28%"><div align="right">所在城市:
</div></td>
<td width="72%"><input type="text"
name="City"></td>
</tr>
<tr>
<td width="28%"><div align="right">电话号码:</div></td>
<td width="72%"><input type="text" name="Tel"></td>
</tr>
<tr>
<td width="28%"><div align="right"> </div></td>
<td width="72%">
<input type="submit"
name="Submit" value="Submit">
<input type="reset" name="reset"
value="Reset"></td>
</tr>
</table>
</div>
</form>
</body>
</html>
三、建立数据库连接,将表单中收集到的信息添加到ACCESS数据库
<%
'1.将表单中收集到的信息赋值给变量
CompanyName = Request("CompanyName")
CName = Request("CName")
City = Request("City")
Tel = Request("Tel")
'使用ASP的Request对象取得表单中填写的数据,双引号中的是项目名(NAME)。
'数据保存在等号左侧的变量中:变量=项目。
'2.检测某一项目为空时,则不往下继续执行,显示错误提示。
If CompanyName = "" Or CName = "" Or City = "" Or Tel = ""
Then
Response.Write
"<html><body><center><font
size=5>填写资料不完整
。</font></center></body></html>"
Response.Redirect "error.htm"
Response.End
End If
'列出方法:使用Response.Write方法写一个出错页面。
'3.建立数据库连接
set
cn=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("wssdk.mdb")
cn.Open "driver={Microsoft Access Driver
(*.mdb)};dbq=" & DBPath
'1)建立Connection对象:cn
'使用ASP的内建对象方法Server.Createobject建立与数据库的连接。
'ADODB是ASP的数据库存取组件。
'2)使用cn.open方法打开数据库wssdk.mdb
'driver={Microsoft Access Driver (*.mdb)}
'告诉系统使用ACCESS ODBC驱动处理。
'dbq参数用来指定打开的数据库文件,
'例如"c:\inetpub\wwwroot\wssdk\wssdk.mdb",
'使用Server.MapPath的方法取得数据库的完整路径。
'4.建立Recordset对象rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "用户资料表", cn, adOpenDynamic, 3
'打开数据库中的用户资料表
'rs.open 数据表名或SQL指令,已经建立的Connection对象(这里是cn),
'游标锁定类型
'5.用AddNew向数据库请求添加数据,用Update写入
rs.AddNew
rs("公司名称") = CompanyName
rs("联络人姓名") = CName
rs("所在城市") = City
rs("电话号码") = Tel
rs.Update
'双引号内的就是数据库记录的字段 = 变量保存着用Request取得的表单数据。
'6.如果注册成功,则返回用户编号和用户填写的用户资料。
'(写入成功后显示祝贺信息并建立查看数据库记录的连接)
Response.Write "<html><body><center><font size=5>
祝贺,您的数据已经添加进数据库了!<p>"
Response.Write "<a href='viewdatabase.asp'>查看数据</a>"
Response.Write "</font></center></body></html>"
%>
四、显示/查看数据库记录 ckjl.asp
<%
'1.建立与数据库的连接
set cn=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("wssdk.mdb")
cn.Open "driver={Microsoft Access Driver
(*.mdb)};dbq=" & DBPath
'2.建立SQL查询语句
'DESC表示"按时间降序排序",
'执行SQL查询并将结果返回给Recordset对象rs。
SQL="select * from
用户资料表 Order By 时间 DESC"
SET rs=cn.EXECUTE(SQL)
%>
<html>
<body>
<FONT SIZE="5"><center>数据库记录</center></FONT>
<CENTER>
<TABLE BORDER=1>
<tr>
<td>编号</td>
<td>公司名称</td>
<td>联络人姓名</td>
<td>所在城市</td>
<td>电话号码</td>
</tr>
'循环输出记录(EOF表示End of File)
<% DO WHILE NOT rs.EOF %>
<TR>
'输出用户资料表记录字段值:“用户编号”……“联络人姓名”……
<TD><% =rs("用户编号") %></TD>
<TD><% =rs("公司名称") %></TD>
<TD><% =rs("联络人姓名") %></TD>
<TD><% =rs("所在城市") %></TD>
<TD><% =rs("电话号码") %></TD>
</TR>
'移到下一记录
<%
rs.movenext
loop
%>
</TABLE>
</CENTER>
<center>
<input type="button" onclick="javascript:location.href='add.htm'"
value="添加数据">
</center>
</BODY>
</HTML>