魔兽世界人类女猎人:ASP数据库查询问题,请大家帮忙,多谢了!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/14 02:33:33
我想在search.htm页中有一个下拉菜单,内容有name,tel。边上有一个文本域输入要查询的值。通过search.asp来处理,打印出查询到的项目。我要怎么写代码?

example.mdb中建立了一个表叫guestbook有以下字段:id(自动编号),name(文本),tel(数字),message(备注),time(日期/时间)

下面是我写的,但是老出错呀!高人出手帮忙呀!谢谢了!!!小弟感激涕零了!!!

--------search.htm中代码如下:--------------
<html>
<head>
<title>search</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="searchp.asp">
搜索:<br>
<select name="item">
<option value="name">name</option>
<option value="tel">tel</option>
</select>
<input type="text" name="val">
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</form>
</body>
</html>
--------searchp.asp中代码如下:--------------
<%
name=request.form("name")
tel=request.form("tel")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example.mdb")
exec="select * from guestbook where '"+item+"'='"+val+"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>search</title>
</head>

<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<%
do while not rs.eof
%>
<tr>
<td><%=rs("name")%></td>
<td><%=rs("tel")%></td>
<td><%=rs("message")%></td>
<td><%=rs("time")%></td>
</tr>
<%
rs.movenext
loop
%>
</table>

</body>
</html>
下面是我按“雁鸣”的代码修改完后执行后的错误报告
-----------------------------------------------
技术信息(用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
/searchp.asp, 第 8 行

浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

网页:
POST 41 ??? /searchp.asp

POST Data:
item=tel&val=62871394&Submit=%CC%E1%BD%BB

--------searchp.asp中代码如下:--------------
<%
item=request.form("item")
val=request.form("val")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example.mdb")
exec="select * from guestbook where name ='"+val+"' or tel ='"+val+"'"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
<html>
...
...
...
</html>

--------------------------------------------------
补充回答:
出现那个错误我也不愿看到,也不知什么原因,给个较完整的代码你参考一下:

----------------------search.htm-----------------
<form name="form1" method="post" action="search.asp">
搜索:<br>
name =
<input type="text" name="name">
and tel=
<input type="text" name="tel">
<br>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</form>
-------------------------------------------------
-------------------search.asp--------------------
<%
name=request.form("name")
tel=request.form("tel")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example.mdb")
exec="select * from guestbook where name='"+name+"' and tel="+tel
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
do while not rs.eof
%><tr>
<td><%=rs("name")%></td>
<td><%=rs("tel")%></td>
<td><%=rs("message")%></td>
<td><%=rs("time")%></td>
</tr>
<%
rs.movenext
loop
%>
</table>
</body>
</html>

-------------------------------------------------
我这里测试通过了,还有问题,我把源码和数据库发给你测试.(QQ:66860466)