经典ASP数组不返回值,错误500
问题描述:
我正在执行相同的代码多次生成一个表。我的第一个想法是使用数组来做到这一点。经典ASP数组不返回值,错误500
这是我迄今为止得到:
Dim iRow
iRow = 0
'alternate color for rows
Do While Not rsGlobalWeb.EOF
If iRow Mod 2 = 0 Then
response.write "<tr bgcolor=""#FFFFFF"">"
Else
response.write "<tr bgcolor=""#EEEEEE"">"
End If
'some other code
SqlBackup = "SELECT * FROM CMDBbackup WHERE Naam_Cattools = '" & rsGlobalWeb("Device_name") & "'"
Set rsBackup = Server.CreateObject("ADODB.Recordset")
rsBackup.Open SqlBackup, dbGlobalWeb, 3
'declaration of array
Dim fieldname(5),i
fieldname(0) = "Device_name"
fieldname(1) = "Image"
fieldname(2) = "Backup"
fieldname(3) = "Uptime"
fieldname(4) = "Processor"
fieldname(5) = "Nvram"
For i = 0 to 5
If rsGlobalWeb(fieldname(i)) <> "" Then
response.write("<td>" & rsGlobalWeb(fieldname(i)) & "</td>")
Else
If Not rsBackup.EOF Then
If Not IsNull(rsBackup(fieldname(i))) And (rsBackup(fieldname(i)) <> "") Then
response.write("<td>" & rsBackup(fieldname(i)) & " (backup)</td>")
End if
Else
response.write("<td>No data found</td>")
End if
End if
Next
response.write("</tr>")
iRow = iRow + 1
rsGlobalWeb.MoveNext
Loop
的问题我现在是,即使寿我都友好的信息关闭,则会出现以下错误:
“500 - 内部服务器错误。 您正在查找的资源存在问题,无法显示。“
日志文件显示以下内容: “DaEngineSDB.asp | 58 | 800a000d | Type_mismatch 80 - ”其中58是带有Dim Fieldname的行。
没有数组它确实显示代码的其余部分(我有1个其他字段被添加)。如果我删除数组并填写字段名(i)与一个正常的字符串值,它也可以正常工作。
我正在尝试谷歌说的东西,但尝试了几件事后,我仍然跑到墙上。 任何想法可能是什么?
由于提前,
埃里克
答
问题解决!
在我的头靠在墙上撞了一天之后,我发现我愚蠢地在DO WHILE循环中声明了数组。将声明移出并解决问题。
答
首先,你应该打开错误在您的IIS显示,或读取错误日志其描述,如果不知道如何google一下。
没有错误描述,检查出错是太困难了。
感谢您的回复,我检查了日志文件,它显示:DaEngineSDB.asp | 58 | 800a000d | Type_mismatch。第58行的完整代码是Dim fieldname的行。 – Meridius