在ASP中使用SQL 语句

ZDNet软件频道 时间:2002-04-09 作者:ZDNET CHINA 特稿 |  我要评论()
本文关键词:
教您如何利用自己掌握的Access技能,加上我们所给的提示和技巧,在您的ASP网页中加入SQL。
9. 表单操作

从某个页面表单中取出信息是ASP编程中常见的问题。但是,遍历通过表单传递的记录会花去多长时间呢?这取决于数据库的大小。简单的GUI界面都可能令循环遍历操作耗费太多的时间。

比方说,假设有个团队成员登录到GUI屏幕输入自己的名字姓氏和名字之间用点号连接:amy.cowen。这个值通过表单提交,她的当前项目列表就从数据库中取了出来并显示在屏幕上。为了快速地取出用户的记录以便显示在屏幕上,你可以编写以下代码。

假设HTML页面上包含以下代码:
<FORM ACTION="login_post.asp" METHOD="POST">
        <INPUT TYPE="text" NAME="dotname">
        <INPUT TYPE="submit">
</FORM>


在你的login_post.asp 代码页上你希望读取dotname 字段的值,同时找出数据库内匹配的记录:
SQL = "SELECT dotname, ID FROM team WHERE dotname = '" & Request.Form("dotname") & "'"

假如你采用GET 方法,需要把数据库记录同QueryString中的字段值做比较,那么你可以采用同样的基本方法:
SQL = "SELECT dotname, ID FROM team WHERE dotname = '" & Request.QueryString("dotname") & "'"

当然,你还可以把表单字段的值分配给某个变量并把它插入到你的SQL语句中:
dotname = Request.QueryString("dotname")
SQL = "SELECT dotname, ID FROM team WHERE dotname = '" & dotname &"'"

10. 视图

假如页面上有很多条记录,很多情况下,对这些信息按照字母表降序排序会比传统的升序排序显示效率更高。采用你熟悉的ORDER BY 子句,你可以很容易地在页面上增加这一功能,让用户控制其记录显示的视图。

假设你有个页面的名字叫customers.asp ,页面执行会从Customers表内选取全部记录并按照字母表顺序对客户姓氏排序。先前我们已经看到过排序的代码了,为了实现反向排序,你只需要在ORDER BY 表达式之后加上desc 即可:
SQL = "SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY c_lastnamedesc"

要在静态模式下这也不赖。但是,也许你想修改以上代码使之提供新的GUI功能:
<A HREF="customers.asp ">Sort Ascending</A> | <A HREF="customers.asp?sort=desc">Sort Descending</A>
<P>
<%
SQL = "SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY c_lastname " & sort & " "

set objRec = objConn.Execute(SQL)

While Not objRec.EOF
Response.WriteobjRec("c_lastname") & ", " & objRec("c_firstname") & "
" & objRec("c_email") & "<P>"
objRec.MoveNext
Wend

%>


以上代码最开头的链接允许用户修改页面的视图。你可以重载同一页面来查看这些信息,但是,在Sort Descending链接的情况下,页面会给sort 变量赋值。然后,在SQL语句内就没有指定desc而是采用 sort 变量的值。

下面要做的就是读取页面顶部sort 的值。
<%
    sort = Request.Querystring("sort")
%>


以上代码从URL中检出sort的可用值。

并没有令你费太多的功夫,你还可以调整同一页面允许用户对特定的列排序。简单的SELECT 菜单表单控件列出SORT BY 选项可能是一个更方便的措施。


百度大联盟认证黄金会员Copyright© 1997-2025 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134