access练习一:
建立一简单数据库的添加、显示、查询功能实现 注:[采用access2000+asp,数据库:customer.mdb(字段: 公司名(字符型)、电话(数据型)、传真(数据型)、类别(字符型)、联系人(字符型)、备注(字符型))]
<在winxp pro+iis5.1环境下完成测试>
页面代码如下:
---add.html----
<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="Tel">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">传真: </div>
</td>
<td width="72%">
<input type="text" name="Fax">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">类别:</div>
</td>
<td width="72%">
<input type="text" name="Classes">
</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="Backups">
</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>
---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="Tel">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">传真: </div>
</td>
<td width="72%">
<input type="text" name="Fax">
</td>
</tr>
<tr>
<td width="28%">
<div align="right">类别:</div>
</td>
<td width="72%">
<input type="text" name="Classes">
</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="Backups">
</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>
---addnewdatabase.asp---
<%
rs.AddNew
rs("公司名") = CompanyName
rs("电话") = Tel
rs("传真") =Fax
rs("类别") = Classes
rs("联系人")=Cname
rs("备注")=Backups
rs.Update
%>
---viewdatabase.asp---
<%
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Dbpath '建立与数据库的连接,与上同。
SQL="select * from customers Order By 公司名 DESC"
SET CustomerList=dbconnection.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>
<td>备注</td>
</tr>
<% DO WHILE NOT CustomerList.EOF
'检测记录是否到了最后一条。EOF表示End of File。
%>
<TR>
<TD><% =CustomerList("公司名") %></TD>
<TD><% =CustomerList("电话") %></TD>
<TD><% =CustomerList("传真") %></TD>
<TD><% =CustomerList("类别") %></TD>
<TD><% =CustomerList("联系人") %></TD>
<TD><% =CustomerList("备注") %></TD>
</TR>
<%
CustomerList.movenext
loop
'如果还没有到最后一条则指针移动到下一条。用Do While ... Loop循环逐一取得所有的记录。
%>
</TABLE>
</CENTER>
<center>
<input type="button" value="添加数据">
</center>
</BODY>
</HTML>
===================
所出现问题解决方法:
1.
<%
set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")
DBPath = Server.MapPath("customer.mdb")
dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Dbpath '建立与数据库的连接,与上同。
SQL="select * from customers Order By 公司名 DESC"
SET CustomerList=dbconnection.EXECUTE(sql)
%>
1).SQL="select * from customers Order By 公司名 DESC",当中若字段名“公司名”写错,如写成“公司”,则出现如下错误提示:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
/viewdatabase.asp, 第 6 行
把字段名改正与数据库字段正确的字段名。这样可正常显示正确的信息,如在用到网路猪浏览器时,会无法显示出默认项的 add.html 页面。原因不清楚
而在Mircrosoft Internet Explorer 和MyIe 以及火狐浏览器时可以正常显示到预期结果。
2.
<%
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "customers", dbconnection, adOpenDynamic,3
%>
1).adOpenDynamic,3
当以上的这个语句缺少时,将会得到以下结果:
错误类型:
ADODB.Recordset (0x800A0CB3)
当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。
/adddatabase.asp, 第 26 行
这样看来Recordset 设置值当中, “adOpenDynamic,3” 同样地不可缺少。当然这当中的“3”含义应该是:当前数据记录只读,可自由移动。换成"2"也可以,而换成“1”或者不用,将不能正常显示预期结果
会显示成如上边的错误类型:
ADODB.Recordset (0x800A0CB3)
当前记录集不支持更新
==========================================================
摘录: sql="select * from 用户 where 帐号='"&zh&"' or 姓名='"&name&"'"
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,1
1,1是一般的查询!3,3是可以分页的!2,2我没用过!
===============================================