我正在多次执行相同的代码来生成表格。我的第一个想法是使用数组来做到这一点。
这是我到目前为止所得到的:
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个其他字段被添加)。如果我删除数组并用正常的字符串值填充fieldname(i),它也可以正常工作。
我正在尝试谷歌所说的东西,但在尝试了几件事之后,我仍然跑到墙上。 任何想法可能是什么?
提前致谢,
埃里克
答案 0 :(得分:0)
首先你应该打开你的iis中的错误显示,或者阅读错误日志中的描述,如果不确定如何,请谷歌。
如果没有错误描述,检查错误是很困难的。
答案 1 :(得分:0)
问题解决了!
将我的头撞在墙上一天后,我发现我愚蠢地在DO WHILE循环中声明了数组。将声明移出它并解决了问题。