日期:2010-06-09  浏览次数:21193 次

  上一节:写入记录

  学习目的:学会数据库的基本操作--查询记录

  在第四天中我们用到下面这样一个程序:

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")
exec="select * from guest"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>

  我们查询的是所有的记录,但是我们要修改、删除记录的时候不可能是所有记录,所有我们要学习检索合适的记录。先看一条语句:

a="aaa"
b=1111110
exec="select * from guestbook where name='"+a+"'and tel="+b

  where后面加上的是条件,与是and,或是or,我想=,<=,>=,<,>的含义大家都知道吧。这句话的意思就是搜索name是“aaa”的,并且电话是“1111110”的记录。还有一点就是如果要搜索一个字段里面是不是包含一个字符串就可以这么写:where instr(name,a)也就是搜索name里面有a(aaa)这个字符串的人。

  我这里的a,b,是常量,大家可以让a,b是表单提交过来的变量,这样就可以做一个搜索了。

  下面大家看看这个代码,理解一下:(把下面代码存为6.htm文件)

<form name="form1" method="post" action="exam6.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>

  exam6.asp(把下面代码存为exam6.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("data/guestbook.mdb")
exec="select * from guest 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>

  首先在浏览器中输入http://localhost/6.htm如下图所示:

  输入数据库中已有的姓名和电话aaa,1111110,单击提交,结果如下图所示:

  下一节:删除记录