2022年ASP代码相关知识点.docx
名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -ASP代码相关学问点一、常用 VB 脚本学问1、运算符算术运算符比较运算符规律运算符描述符号描述符号描述符号求幂 等于= 规律非Not 负号- 不等于<> 规律与And 乘* 小于< 规律或Or 除/ 大于> 规律异或Xor 整除 小于等于<= 规律等价Eqv 求余Mod 大于等于>= 规律隐含Imp 加+ 对象引用比较Is 减- 第一运算算术运算符,然后运算比较运算符,最终运算逻字符串连接& 当表达式包含多种运算符时,辑运算符;全部比较运算符的优先级相同,即依据从左到右的次序运算比较运算符;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -2.变量2.1 声明变量声明变量的一种方式是使用Dim 语句、 Public语句和Private语句在 Script 中显式声明变量;例如: Dim DegreesFahrenheit 声明多个变量时,使用逗号分隔变量;例如: Dim Top, Bottom, Left, Right 另一种方式是通过直接在 Script 中使用变量名这一简洁方式隐式声明变量;这通常不是一个好习惯, 由于这样有时会由于变量名被拼错而导致在运行 Script 时显现意外的结果;因此,最好使用 Option Explicit 语句显式声明全部变量,并将其作为 Script 的第一条语句;2.2 命名规章变量命名必需遵循 VBScript 的标准命名规章;变量命名必需遵循:第一个字符必需是字母;不能包含嵌入的句点;长度不能超过 255 个字符;在被声明的作用域内必需唯独;3.条件语句If.Then.Else 语句Select Case 语句3.1 使用 If.Then.Else 进行判定If.Then.Else 语句用于运算条件是否为 True 或 False ,并且依据运算结果指定要运行的语句;通常,条件是使用比较运算符对值或变量进行比较的表达式;If.Then.Else 语句可以依据需要进行嵌套;If 条件表达式 then 条件为真时执行的语句组Else 条件为假时执行的语句组End if 条件为 True 时运行语句下例示范了 单行 语法; Sub FixDate Dim myDate 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - - myDate = #2/13/95# If myDate < Now Then myDate = Now End Sub 多行 (或块)语法包含End If语句,如下所示: Sub AlertUservalue If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True End If End Sub 条件为 True 和 False 时分别运行某些语句条件为True 时运行某一语可以使用If.Then.Else语句定义两个可执行语句块:句块,条件为False时运行另一语句块; If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True Else AlertLabel.Forecolor = vbBlack AlertLabel.Font.Bold = False AlertLabel.Font.Italic = False End If 对多个条件进行判定If.Then.Else 语句的一种变形答应您从多个条件中挑选,即添加 ElseIf 子句以 扩充 If.Then.Else 语句的功能,使您可以掌握基于多种可能的程序流程;例如: If value = 0 Then MsgBox value ElseIf value = 1 Then MsgBox value ElseIf value = 2 then Msgbox value Else Msgbox " 数值超出范畴! " End If 可以添加任意多个ElseIf子句以供应多种挑选; 使用多个ElseIf子句常常会变得很 第 3 页,共 11 页 - - - - - - - - - 累赘;在多个条件中进行挑选的更好方法是使用Select Case语句;3.2 使用 Select Case 进行判定细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -Select Case 结构供应了If.Then.ElseIf结构的一个变通形式,可以从多个语句块中挑选执行其中的一个;Select Case 语句供应的功能与If.Then.Else语句类似,但是可以使代码更加简练易读;Select Case 结构在其开头处使用一个只运算一次的简洁测试表达式;表达式的结果将与结构中每个Case 的值比较;假如匹配,就执行与该Case 关联的语句块: Select Case Document.Form1.CardType.OptionsSelectedIndex.Text Case "MasterCard" DisplayMCLogo ValidateMCAccount Case "Visa" DisplayVisaLogo ValidateVisaAccount Case "American Express" DisplayAMEXCOLogo ValidateAMEXCOAccount Case Else DisplayUnknownImage PromptAgain End Select 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -4、循环语句Do.Loop : 当(或直到)条件为 True 时循环;While.Wend : 当条件为 True 时循环;For.Next: 指定循环次数,使用计数重视复运行语句;For Each.Next 组语句;4.1 使用 Do 循环Do While 条件循环语句组 Loop Sub ChkFirstWhile Dim counter, myNum counter = 0 myNum = 20 Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop : 对于集合中的每项或数组中的每个元素,重复执行一 MsgBox "循环重复了 " & counter & " 次; " End Sub Sub ChkLastWhile Dim counter, myNum counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10 MsgBox "循环重复了 " & counter & " 次; " End Sub 4.2 退出循环Exit Do语句用于退出Do.Loop循环;If.Then.Else语句检查此条件,在下面的示例中, myNum 的初始值将导致死循环;防止显现死循环;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - - Sub ExitExample Dim counter, myNum counter = 0 myNum = 9 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 If myNum < 10 Then Exit Do Loop MsgBox "循环重复了 " & counter & " 次; " End Sub 4.3 使用 While.Wend While.Wend语句是为那些熟识其用法的用户供应的;但是由于While.Wend缺少敏捷性,所以建议最好使用Do.Loop语句;4.4 使用 For.Next For.Next 语句用于将语句块运行指定的次数;在循环中使用计数器变量,该变量的 值随每一次循环增加或削减;For 循环变量 =初值 to 终值 step 步长值 循环语句组 next 例如,下面的示例将过程 MyProc 重复执行 50 次; For 语句指定计数器变量 x 及其 起始值与终止值;Next 语句使计数器变量每次加 1 ; Sub DoMyProc50Times Dim x For x = 1 To 50 MyProc Next End Sub 关键字 Step 用于指定计数器变量每次增加或削减的值;在下面的示例中, 计数器变量 j 每次加 2 ;循环终止后,total 的值为 2 、4、6、8 和 10 的总和; Sub TwosTotal Dim j, total For j = 2 To 10 Step 2 total = total + j Next MsgBox "总和为 " & total & ";" End Sub 要使计数器变量递减,可将Step 设为负值; 第 6 页,共 11 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -Exit For语句用于在计数器达到其终止值之前退出For.Next语句;由于通常只是在某些特别情形下 (例如在发生错误时) 要退出循环, 所以可以在If.Then.Else语 第 7 页,共 11 页 句的 True 语句块中使用Exit For语句;假如条件为False ,循环将照常运行;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -二、 Asp 内置对象Request:用于提取从客户端传递或提交的信息Response:用于向客户端反馈信息或做重定向Application:应用程序级变量,用于储存整个服务器上的相关活动信息,常用来做网站拜访计数器Session :阶段级变量,用于储存某一个用户在网站上的一次连接的活动信息Cookie :常用于把储存或提取客户端上的相关信息Server :常用于猎取服务器和客户端的环境信息1.Request 对象1.1Request.querystring:用于提取客户端通过浏览器传递的参数,或是提取用Get 方法提交的表单中的信息1.2Request.Form: 用于提取用 Post 方法提交的表单中的信息2.Response 对象2.1Response.write 方法:用于输出信息Response.redirect 方法:用于重定向到某个地址3.Server 对象Server.createobject 方法,用于创建服务器上已经注册的各种对象Server.mappath 方法:用于把一个虚拟路径转换为物理路径三、 Asp 连接数据库1、ASP的对象存取数据库方法在 ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象: Connection 、Recordset 、Command Connection :负责打开或连接数据Recordset :负责存取数据表Command:负责对数据库执行行动查询命令2、连接各数据库的驱动程序连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,由于使用驱动程序特别便利、简洁,而使用数据源比较麻烦;ODBC链接适合数据库类链接方式 第 8 页,共 11 页 型access "Driver=microsoft access driver*.mdb;dbq=*.mdb;uid=admin;pwd=pass;" Oracle "Driver=microsoft odbc for oracle;server=oraclesever.world;uid=admin;pwd=pass;" 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -MSSQL server "Driver=sql server;server=servername;database=dbname;uid=sa;pwd=pass;" MySQL "Driver=mysql;database=yourdatabase;uid=username;pwd=yourpassword;option=1 6386;" OLEDB链接适合的数据库类型 链接方式"Provider=microsoft.jet.oledb.4.0;data access source=your_database_path;user id=admin;password=pass;" "Provider=OraOLEDB.Oracle;data source=dbname;user Oracle id=admin;password=pass;" "Provider=SQLOLEDB;data source=machinename;initial MS SQL Server catalog=dbname;userid=sa;password=pass;" 而我们在一般情形下使用 Access 的数据库比较多, 在这里我建议大家连接 Access 数据库使用下面的方法:dim conn 声明一个连接变量 Conn set conn = server.createobject"adodb.connection"创建一个连接对象conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath"./db/bbs.mdb" 打开连接对象其中 ./db/bbs.mdb 是你的数据库存放的相对路径!3. 创建记录集Set rsbbs=server.createobject“ adodb.recordset” bbsmain 表中的全部内容 第 9 页,共 11 页 创建一个名为rsbbs 的记录集” 设置记录集的查询内容为Rssql= ” select * from bbsmain细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -Rsbbs.open rssql,conn,2,3 设置打开记录集其中 2,3 为记录集的参数,详细为:rs.open sql,conn,A,B A:ADOPenforwardonly =0 只读,且当前数据记录只能向下移动;ADOPenkeyset =1 只读,当前数据记录可自由移动;ADOpendynamic =2 可读写,当前数据记录可自由移动;ADOpenstatic =3 可读写,当前数据记录可自由移动,可看到新增记录;B:ADLockreadonly =1 缺省锁定类型,记录集是只读的,不能修改记录;ADLockpessimistic =2 悲观锁定,当修改记录时,数据供应者将尝试锁定记录以确保胜利地编辑记录,只要编 始,就立刻锁住记录;辑一开 ADLockoptimitic =3 乐观锁定,直到用 Update 方法提交更新的记录时才锁定记录;ADLockbatchoptimistic =4 批量乐观锁定,答应修改多个记录,只有调用 4. 记录集方法UPDATE BATCH 方法时才锁定记录;Move: 将游标指针移动到指定的记录数位置 MoveFirst :移动到第一条记录位置 MoveNext :移动到当前记录的下一条记录 MovePrevious :移动到当前记录的上一条记录 MoveLast :移动到最终一条记录AbsolutePosition:设置和读取当前记录的位置次序号BOF :指向第一条记录的前面 EOF :指向最终一条记录的后面 RecordCount :统计整个记录数 Addnew Update Delete 5.记录集分页显示:AbsolutePage: 当前记录在总页面中的页数编号细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -AbsolutePosition: 肯定位置 PageCount: 数据存在的页数 pageSize: 每页的记录数 RecordCount: 统计记录集的记录总数细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 11 页 - - - - - - - - -