分享

ASP练习三 数据记录的写入与查询

 zjsxShenwx 2008-04-02
ASP练习三 数据记录的写入与查询
2006年12月01日 星期五 11:58
ASP练习三 数据记录的写入与查询
 
数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。

一.记录的写入

先建立一个表单:(把下面文章保存为5.htm)
<form name="form1" method="post" action="exa5.asp">
name <input type="text" name="name"><br>
tel <input type="text" name="tel"><br>
message <input type="text" name="message" value=""><br>
<input type="submit" name="Submit" value="提交
">
<input type="reset" name="Submit2" value="重置
">
</form>

表单提交到exa5.asp,下面是exa5.asp的代码: (把下面代码保存为5.asp)
<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestbook.mdb")
name=request.form("name")
tel=request.form("tel")
message=request.form("message")
exec="insert into guest(name,tel,message)values('"+name+"',"+tel+",'"+message+"')"
conn.execute exec
conn.close
set conn=nothing
response.write "记录添加成功
!"
%>
   在这里前面两句我不说了,后面三句我也不说了,前面说过exec里面的是执行的命令,添加记录的比较繁,大家要仔细看。
  insert into后面加的是表的名字,后面的括号里面是需要添加的字段,不用添加的或者字段的内容就是默认值的可以省略。注意,这里的变量一定要和ACCESS里面的字段名对应,否则就会出错。values后面加的是传送过来的变量。exec是一个字符串,"insert into guest(name,tel,message)values('"是第一段,在ASP里面不能嵌双引号,所以可以用'代替双引号,放在双引号里面,连接两个变量用+或者&所以"',"又是一段,中间夹了一个name就是表单传来的变量,这样就可以在这个变量外面加两个'',表示是字符串了,后面的tel是数字型变量所以不需要外面包围'',大家慢慢分析这句话,如果用表单传来的数据代替变量名字的话这句话为(假设name="aaa",tel=111,message="bbb"):"insert into guest(name,tel,message)values('aaa',111,'bbb')"。
  接下来的conn.execute 就是执行这个exec命令,最后别忘记把打开的数据库关闭,把定义的组件设置为空,这样可以返回资源。

下面几条语句用于关闭数据库的代码:
rs.close
set rs=nothing
conn.close
set conn=nothing
记住,次序不可以颠倒! 可以到数据库里面去看一看,是不是多了记录阿?
 
二.记录的查询

前次练习时,我们用到下面这样一个程序:
<%
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,单击提交,结果如下图所示:
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多