在 VBScript 中,使用Dim 语句声明变量。
Dim name, age name = "张三" age = 25 Response.Write "姓名:" & name & "
" Response.Write "年龄:" & age
上述代码中,首先使用Dim 声明了两个变量name 和age,然后分别给它们赋值,并通过Response.Write 方法将变量的值输出到网页上。
(二)条件语句
1、If…Then…Else 语句:根据条件判断执行不同的代码块。
Dim score
score = 80
If score >= 60 Then
Response.Write "成绩合格"
Else
Response.Write "成绩不合格"
End If
在这个例子中,判断变量score 的值是否大于等于 60,如果是,则输出“成绩合格”,否则输出“成绩不合格”。
2、Select Case 语句:用于多分支条件判断,比多个 If…Then…Else 语句更简洁。
Dim day
day = 3
Select Case day
Case 1
Response.Write "星期一"
Case 2
Response.Write "星期二"
Case 3
Response.Write "星期三"
Case 4
Response.Write "星期四"
Case 5
Response.Write "星期五"
Case 6
Response.Write "星期六"
Case 7
Response.Write "星期日"
Case Else
Response.Write "无效的日期"
End Select
这里根据变量day 的值选择执行相应的代码块,输出对应的星期信息。
(三)循环语句
1、For…Next 循环:用于指定次数的循环。
For i = 1 To 5
Response.Write "这是第 " & i & " 次循环
"
Next
上述代码将从 1 循环到 5,每次循环输出当前循环的次数。
2、While…Wend 循环:根据条件判断是否继续循环。
Dim counter
counter = 1
While counter <= 3
Response.Write "循环次数:" & counter & "
"
counter = counter + 1
Wend
这个循环会在counter 小于等于 3 的条件下一直执行,每次循环输出当前的循环次数,并将counter 的值加 1。
四、ASP 与数据库交互
(一)连接数据库

在 ASP 中,通常使用 ADO(ActiveX Data Objects)技术连接数据库,以连接 SQL Server 数据库为例,首先需要创建数据库连接对象,并设置连接字符串。
Dim conn, connString
Set conn = Server.CreateObject("ADODB.Connection")
connString = "Provider=SQLOLEDB;Data Source=服务器地址;Initial Catalog=数据库名称;User Id=用户名;Password=密码;"
conn.Open connString
上述代码中,首先创建了一个名为conn 的数据库连接对象,然后定义了连接字符串connString,其中包含了数据库服务器地址、数据库名称、用户名和密码等信息,最后通过conn.Open 方法打开数据库连接。
(二)执行 SQL 语句
1、查询数据:使用Recordset 对象执行查询操作并获取结果集。
Dim rs, sql
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM users"
rs.Open sql, conn, adOpenKeyset, adLockReadOnly
Do While Not rs.EOF
Response.Write "用户名:" & rs("username") & "
"
Response.Write "邮箱:" & rs("email") & "
"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
这段代码首先创建了一个Recordset 对象rs,然后定义了查询语句sql,通过rs.Open 方法执行查询并获取结果集,使用Do While Not rs.EOF 循环遍历结果集,输出每个用户的用户名和邮箱信息,最后关闭记录集并释放对象。
2、添加数据:使用Command 对象执行插入操作。
Dim cmd, insertSql
Set cmd = Server.CreateObject("ADODB.Command")
insertSql = "INSERT INTO users (username, email) VALUES (@username, @email)"
cmd.CommandText = insertSql
cmd.Parameters.Add "@username", adVarChar, 50, "username"
cmd.Parameters.Add "@email", adVarChar, 100, "email"
cmd.Parameters("@username").Value = "李四"
cmd.Parameters("@email").Value = "lisi@example.com"
cmd.Execute conn, adExecuteNonQuery
Set cmd = Nothing
这里创建了一个Command 对象cmd,设置了要执行的插入语句insertSql,并为参数@username 和@email 赋值,然后通过cmd.Execute 方法执行插入操作,最后释放对象。
五、ASP 常见问题与解答
问题一:在浏览器中访问 ASP 文件时出现“HTTP 错误 500 内部服务器错误”,可能是什么原因?
解答:这种错误通常是由于服务器端脚本存在语法错误或服务器配置问题导致的,首先检查 ASP 代码是否存在拼写错误、未闭合的引号、错误的函数调用等问题,检查 IIS 的配置是否正确,例如是否已经正确注册了.asp 文件的脚本引擎,是否给予了存放 ASP 文件的文件夹正确的访问权限等,还可以查看服务器的日志文件,通常可以在 IIS 管理器中找到相关的日志选项,通过分析日志文件中的错误信息来确定具体的原因并进行修复。
问题二:如何在 ASP 中实现文件上传功能?
解答:在 ASP 中实现文件上传功能需要使用第三方组件,如 LyfUpload 组件,首先需要在服务器上安装并配置好该组件,然后在 ASP 代码中使用该组件提供的方法来实现文件上传。
<%@ Language=VBScript %>
<%
Set upload = New LyfUpload_FileUpload()
upload.SavePath = Server.MapPath("/uploads/") '设置保存文件的路径
upload.AllowExtensions = "jpg,jpeg,png,gif" '设置允许上传的文件类型
'判断是否有文件上传
If upload.UploadedFilesCount > 0 Then
For Each file In upload.UploadedFiles.Item '遍历所有上传的文件
Response.Write "上传的文件名:" & file.FileName & "
" '输出上传的文件名
Response.Write "文件大小:" & file.FileSize & "字节
" '输出文件大小
Next
Else
Response.Write "没有文件被上传。" '如果没有文件上传,输出提示信息
End If
Set upload = Nothing '释放对象资源
%>
上述代码中,首先引入了 LyfUpload 组件,并创建了一个文件上传对象upload,设置了保存文件的路径和允许上传的文件类型,然后判断是否有文件被上传,如果有,则遍历所有上传的文件并输出文件名和大小信息;如果没有,则输出提示信息,最后释放对象资源,同时提供了一个 HTML 表单,用于选择要上传的文件。