電子工業出版社 JSHING HOUSE DF 【例15.4】如下图15.4所示,从查询输入界面输入用户名,在Demo数据库的 users 表中查找该用户名的纪录,并在浏览器中显示查询结果如图15.5所示。(基础模块2.1”查 询记录”) 暗模查涌记录之人御 国集④历史·三簪O鄂 输入查询串 请输入您要查询的用户名 顶可重填 厂厂本 图15.4查询关键字 的输入 查询结果 查询结果为 姓名电话 电子邮箱 图605“gm如mm急面, 图15.5查询结果的输出 “查询记录”模块由两段程序代码( query data.htm与 query.asp)组成 query data.htm是査询关键字输入的界面; query.asp是从Demo数据库中查询符合关键字 的记录。可在 Frontpage中调用【例15.2】的“数据输入”模块,制作成 query data.hm 的输入界面 query data.htm>源程序: <metahttp-equiv=content-typecontent=text/html:charset=gb2312> < title>基础模块“查询记录”之“输入査询串”</ title <body bgcolor=FCOCOC0> <form me thod="POST action=query. asp>
【例 15.4】如下图 15.4 所示,从查询输入界面输入用户名,在 Demo 数据库的 users 表中查找该用户名的纪录,并在浏览器中显示查询结果如图 15.5 所示。(基础模块 2. 1”查 询记录”) 图 15.4 查询关键字 的输入 图 15.5 查询结果的输出 “查询记录”模块由两段程序代码(query_data.htm 与 query.asp)组成。 query_data.htm 是查询关键字输入的界面;query.asp 是从 Demo 数据库中查询符合关键字 的记录。可在 Frontpage 中调用【例 15.2】的“数据输入”模块,制作成 query_data.htm 的输入界面。 < query_data.htm>源程序: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>基础模块“查询记录”之“输入查询串”</title> </head> <body bgcolor="#C0C0C0"> <form method="POST" action="query.asp"> <p>
電子工業出版社 JEUISHING HOUSE DF ELECTRONCS INDSTR < font face="华文行楷"size="6">输入查询串</font>/hl <h3>请输入您要查询的用户名:</h3 用户名:< input type="text"name=" txtUserName < input type=" submit" value="查询">< input type=" reset" value="全部重填" </body〉 </html> Query.asp程序流程如下图15.6所示: 接受表单输入数据 建立一个到数据源的连结 建立记录集,存放查询结果 图156@uery.asp程序流程图 从程序流程图中可以看出,程序段“建立一个到数据源的连结”即【例15.3】的模块 只要检查相应的参数,如: server=”127.0.0.1;uid=chen;pwd=123; database=Demo”,把IP uid、pwd、 database的值改为当前题目的参数值就可以直接引用 < query.asp>源程序 < Option Explicit % 接受表单输入的数据 rName userName=Request Form(txtUserName") 建立一个到数据源的连接 Dim strdsN con strDSN="Provider=MSDASQL: DRIVER=SQL Serverl: SERVER=127 0.0.1: DATABASE=Demo: UID=chen: PWD=123 Set conn Demo = Server CreateObject("ADODB Connection") connDemo. Open strDSN
<font face="华文行楷" size="6">输入查询串</font></h1> </p> <h3>请输入您要查询的用户名:</h3> <p> 用户名:<input type="text" name="txtUserName" size="20"> </p> <p> <input type="submit" value="查询" ><input type="reset" value="全部重填"> </p> </form> </body> </html> Query.asp 程序流程如下图 15.6 所示: 图 15.6 Query.asp程序流程图 从程序流程图中可以看出,程序段“建立一个到数据源的连结”即【例15.3】的模块, 只要检查相应的参数,如:server=”127.0.0.1;uid=chen;pwd=123;database=Demo”,把IP、 uid、pwd、database的值改为当前题目的参数值就可以直接引用。 <query.asp>源程序: <% Option Explicit %> <% '接受表单输入的数据 Dim userName userName=Request.Form("txtUserName") '建立一个到数据源的连接 Dim strDSN Dim connDemo strDSN="Provider=MSDASQL;DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=Demo;UID=chen;PWD=123" Set connDemo = Server.CreateObject("ADODB.Connection") connDemo.Open strDSN
電子工業出版社 JEUISHING HOUSE DF ELECTRONCS INDSTR 建立记录集,存放查询结果 Dim rsusers Dim strSqlselectUsers Set rsUsers= Server CreateObject("ADODB. Recordset") strSqlselectUsers=" SELECt FROM users WHERE username LIKe%& userName &% rsUsers. Open strSqlselectUsers, connDemo <!一-结果输出 Head> metahttp-equiv=content-typecontent=text/html:charset=gb2312 < title>基础模块“查询记录”之“查询结果”</ title </head <body bgcolor="#COCOC0"> <p> < font face="华文行楷"size="6″>查询结果</font></h1> <h3>查询结果为:</h3 If Not rsusers. Eof Then Ktable border="l cellpadding=8 cellspacing=0 width=342> < th width="70″>姓名</th < th width="121″>电话</th> < th width="143″>电子邮箱</th> Do While not rsusers eof <td width="70><% =rsUsers("username")%>/td> <td width=143"><% =rsUsers(email")%>/td>
'建立记录集,存放查询结果 Dim rsUsers Dim strSqlSelectUsers Set rsUsers = Server.CreateObject("ADODB.Recordset") strSqlSelectUsers="SELECT * FROM users WHERE username LIKE '%" & userName & "%'" rsUsers.Open strSqlSelectUsers, connDemo %> <!--结果输出--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>基础模块“查询记录”之“查询结果”</title> </head> <body bgcolor="#C0C0C0"> <p> <font face="华文行楷" size="6">查询结果</font></h1> </p> <h3>查询结果为:</h3> <% If Not rsUsers.Eof Then %> <table border="1" cellpadding="8" cellspacing="0" width="342"> <tr> <th width="70" >姓名</th> <th width="121" >电话</th> <th width="143" >电子邮箱</th> </tr <% Do While Not rsUsers.Eof %> <tr> <td width="70"><% =rsUsers("username") %></td> <td width="121"><% =rsUsers("phone") %></td> <td width="143"><% =rsUsers("email") %></td> </tr> <%
電子工業出版社 JEUISHING HOUSE DF ELECTRONCS INDSTR 以上模块中,通过使用一个循环来扫描记录集中中的每一条纪录,把每个纪录的 userName、 password、 email、 phone、 userResume字段值显示输出到浏览器 当把查询结果保存到一个记录集对象中时,当前记录总是第一条纪录(如果查询结果不 为空,那么此时BOF和EOF都是 false).在上面的例子中,调用了记录集对象的 MoveNext方法, 使当前记录移到下一条纪录。当所有的记录都显示完时,当前记录移到记录集中最后一条记 录之后,使得记录集对象的EOF属性的值变成TRUE,从而退出 Do while..Loop循环,结束 这次显示输出
rsUsers.MoveNext Loop End If %> </table> </body> </html> 以上模块中,通过使用一个循环来扫描记录集中中的每一条纪录,把每个纪录的 userName、password、email、phone、userResume字段值显示输出到浏览器。 当把查询结果保存到一个记录集对象中时,当前记录总是第一条纪录(如果查询结果不 为空,那么此时BOF和EOF都是false).在上面的例子中,调用了记录集对象的MoveNext方法, 使当前记录移到下一条纪录。当所有的记录都显示完时,当前记录移到记录集中最后一条记 录之后,使得记录集对象的EOF属性的值变成TRUE,从而退出Do while ……Loop循环,结束 这次显示输出