首页 | 免费域名 | 个人服务器 | 一流信息监控拦截系统 | 虚拟主机知识库 | ASP 空间 | ASP技术大全 | 下载中心 | 客户服务中心
  7i24 > ASP技术大全 > ASP快速入门(书生版) >
    7i24 .Com  
  动态网站设计十八般武艺——ASP篇(四)

7i24.Com不停为您服务
动态网站设计十八般武艺——ASP篇(四)
作者:天骄创作室 书生

教学纲要

在上一期中作者向诸位简要介绍了ASP脚本语言之一VBScript的一些基本常识,本期将继续给大家讲解VBScript的脚本编写方法,并通过展示VBScript在ASP程序编写过程中的一系列实例使大家对VBScript有更进一层的理解。

大家在学习了脚本语言VBScript的变量、常量和过程的基本概念后,本期将继续向各位介绍VBScript的函数和语法。

  函数和过程一样都是命名了的代码块,但它们却有很大的区别,过程完成程序任务,函数则返回值。我们可以这样理解,过程象一个完整的句子,而函数则象一个单词。举个例子,当你想获取某个数的平方根,你只要将该数传给VBScript的Sqr()函数,此函数会立即返回该数的平方根。如:

  A=sqr(9)

  则A=3。熟练掌握脚本语言的函数将给你编写ASP程序带来极大的方便,就以上一期结尾处作者布置给大家的课后练习来说,如果你对脚本语言的函数掌握不够全面,那么解决如此之小的一个问题将很有可能花费你相当大的精力。现在让我们来回顾一下这道课后练习。

  “作者正在用ASP制作一套基于WEB的BBS系统,希望能在其中添加一项特殊功能,即当任何用户登陆该BBS后都能够查阅近七天来所有新发布的信息。”

  如果你不熟悉VBScript,就不会知道VBScript本身提供了一个用来取得日期之间的差或和的函数DateSerial,它的语法如下:

  DateSerial(year,month,day)

  如果你要指定一个日期,例如:1998年11月10日,那么DateSerial函数中每个参数的取值范围都应该是可接受的,即日的取值应在1和31之间,月的取值应在1和12之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial函数返回1998年11月10日之前二十年(1990-20)零两个月(11-2)又一天(10-1)的日期:即1978年9月9日。程序如下:

  Datep=DateSerial(1998-20,11-2,10-1)

  对于year参数,若取值范围是从0到99,则被解释为1900到1999年。对于此范围之外的year参数,则使用四位数字表示年份(例如1800年)。当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了35天,则这个天数将被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出-32,768到32,767的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。

  当我们了解并掌握了函数DateSerial的使用方法后,再来看看作者布置的这道题目,一切就迎刃而解了。下面我将程序中的此部分代码公布如下:

  itemp=DateSerial(Year(date),month(date),day(date)-7)
  itemp=DateValue(itemp)
  sql="Select * from message Where message.creatime Between#"&date&"# And #"&itemp&"#"


  在这里我们又接触到了一组函数Year,month,day,它们是用来得到一个日期的年、月、日。date是常数,表示今天日期,而函数DateValue则是将字符串变量转化为日期格式的变量。在本段程序的第三行,我们第一次接触到了标准的SQL查询语句,这句语句是什么意思呢?

  “Select”是标准的SQL数据库查询命令,通过SELECT语句我们可以在数据库中检索数据,并将查询结果提供给用户,此处的“*”表示查询该名为“message”的数据库中的所有记录,而“where”的作用是设定一个查询条件,是为了将数据库中符合条件的记录取出来,“message.creatime”是一个储存了数据库中记录创建日期的变量。将整句语句连起来理解就是:查询名为message的数据库中的所有记录,并将其中创建日期在今天和今天以前七日以内的所有记录存储在变量sql中。(这里有错误!并不是把纪录保存在sql变量中,这个sql仅仅只是忠实的记录了sql查询语句 --- Ailong注)可能由于大家第一次接触SQL语句,一时间无法完全理解它的作用,不过不用担心在今后的章节中作者将专门用一期给大家介绍SQL的使用方法。

  通过上面的学习,大家应该已经能够理解函数在程序中的作用,当然我们不必去死背函数,但要做到熟练运用只有一条捷径--多实践。接下来让我们来看看VBScript的基本语法。

  了解编程语言的朋友一定知道在程序中控制程序流程的语句主要可以分为条件语句和循环语句,在VBScript中可使用以下条件语句:  If...Then...Else语句
  SelectCase语句

  If...Then...Else语句用于计算条件是否为True或False,并且根据计算结果指定要运行的语句。通常,条件是使用比较运算符对值或变量进行比较的表达式,If...Then...Else语句可以按照需要进行嵌套。

  让我们来创建两个范例文件:if1.asp和if2.asp

  将以下语句剪贴到记事簿中,并保存为if1.asp(注意:请将程序中“<”后的空格去掉)

  <html>
  <head>
  <TITLE>if1.asp</TITLE>
  </head><body bgcolor="#FFFFFF">
  <form action="if2.asp" method=get>
  Your First Name<INPUT NAME="FirstName" MaxLength=20><p>
  Your Last Name<INPUT NAME="LastName" MaxLength=20><p>
  <INPUT TYPE=submit><INPUT TYPE=reset>
  </form>
  </body>
  </html>
  将以下语句剪贴到记事簿中,并保存为if2.asp  <html>
  <head>
  <TITLE>ifrespond.asp</TITLE>
  </head>
  <%fname=request.querystring("Firstname")
  lname=request.querystring("Lastname")
  If fname="George" and lname="Washington" then%>
    Hi.You must be the first president!
  <%else%>
    Hi!Nice to Meet You
  <%end if%>
  </body>
  </html>


  asp1.asp产生一个文本输入框,要求用户输入姓、名,如下图:


 

  asp2.asp则是用IF语句判断用户输入的姓名是否为“George Washington”,并做出相应的反馈。在此我们遇到了一个ASP的内建对象request,通过使用request对象可以访问任何用HTTP请求传递的信息,包括从HTML表格中用POST方法或GET方法传递的参数、cookie和用户认证。而QueryString集合检索HTTP查询字符串中变量的值,HTTP查询字符串由问号(?)后的值指定。如:

  http://localhost/if2.asp?Firstname=George&Lastname=Washington

  生成值为"Firstname=George&Lastname=Washington"的变量名字符串。关于ASP对象作者将在今后的几篇里重点讲述。

  If...Then...Else语句的一种变形允许您从多个条件中选择,即添加ElseIf子句以扩充If...Then...Else语句的功能,使您可以控制基于多种可能的程序流程。

  我们将asp2.asp的程序部分扩充如下:

  <%
  fname=lcase(request.querystring("Firstname"))
  lname=lcase(request.querystring("Lastname"))
  If fname="george" and lname="washington" then%>
    Hi.You must be the first president!<p>
  <%elseIf fname="ronald" and lname="reagan" then%>
    Hi.You must be the actor president!<p>
  <%elseIf fname="jimmy" and lname="carter" then%>
    Hi.You must be the peanut farmer president!<p>
  <%elseIf fname="naoko" or fname="charles" then%>
    Hi.Your name reminds me of someone,but I am not sure who!<p>
  <%else%>
    Hi!Nice to Meet You
  <%end if%>


  可以添加任意多个ElseIf子句以提供多种选择。但使用多个ElseIf子句经常会使程序变得很累赘。在多个条件中进行选择的更好方法是使用SelectCase语句。

  Select Case结构提供了If...Then...ElseIf结构的一个变通形式,可以从多个语句块中选择执行其中的一个。Select Case语句提供的功能与If...Then...Else语句类似,但是可以使代码更加简练易读。Select Case结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个Case的值比较。如果匹配,则执行与该Case关联的语句块,我们同样可以用Select Case语句来写asp2.asp文件:

  <%
  fname=lcase(request.querystring("Firstname"))
  lname=lcase(request.querystring("Lastname"))
  name=fname+lname
  Select case name
    case "georgewashington"
      response.write "Hi.You must be the first president!<p>"
    case "ronaldreagan"
      response.write "Hi.You must be the actor president!<p>"
    case "jimmycarter"
      response.write "Hi.You must be the peanut farmer president!<p>"
    case "naokocharles"
      response.write "Hi.Your name reminds me of someone,but I am not sure who!<p>"
    case else
      response.write "Hi!Nice to Meet You"
  End Select %>


  请注意Select Case结构只计算开始处的一个表达式,并且只计算一次,而If...Then...ElseIf结构计算每个ElseIf语句的表达式,这些表达式可以各不相同。因此仅当每个ElseIf语句计算的表达式都相同时,才可以使用Select Case结构代替If...Then...ElseIf结构。Select Case语句也是可以是嵌套的,每一层嵌套的Select Case语句必须有与之匹配的End Select语句。

  以上给大家介绍的脚本语言VBScript的函数和条件语句的使用方法,由于篇幅的缘故不能详细展开,希望各位有志学习ASP的朋友,能在课后进行一定程度的自学和练习。在日常开发ASP应用程序的过程中作者本人日渐体会到了脚本语言的重要性,灵活运用脚本语言将非但可以大大提高ASP应用程序的开发过程,给广大网站制作人员节省大量的时间,而且还能够增强ASP应用程序的执行效率和功能。欲善其事必先利其器,因此作者在此强烈建议诸君,熟练掌握脚本语言,这将对你的ASP程序开发大有帮助。由于本文不是VBScript教程,因此只能用较小的篇幅给大家简要介绍一些VBScript基本常识,在下一期介绍完VBScript的循环语句后,我们将正式开始学习ASP的内建对象,要深入VBScript,建议大家找些教材进行自学。如果你在看完本文后有任何问题请及时Mail我,如果你有什么好的建议也请来信告知,谢谢。


  2002年1月3日  阅读 5773 次  发送此页给朋友  来源:    版权争议  删除

相关文章:   近期热点:

上一篇: 动态网站设计十八般武艺——ASP篇(三)
下一篇: 动态网站设计十八般武艺——ASP篇(五)
返回上一层...
搜索:

(C)2004-2022 7i24.Com 保留所有权利