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>