3

我需要帮助我在连接到经典 asp 中的数据库时得到一个恒定的空白页。出于安全目的,我更改了一些连接字符串。我知道这个字符串有效,因为我可以在 vb.net 中连接到它。

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Search Test</title>
</head>

<body>
<% 
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Data Source=ServerIP;Initial Catalog=Database;User ID=Username;Password=Password"

strSql = "SELECT * FROM categories Where idParentcategory=1 ORDER BY categorydesc ASC"

Set rs = Conn.Execute(strSql)

If rs.eof Then
   Response.write("No records returned")
End If

do until rs.eof
   Response.write(rs("categorydesc") &  "<br>")
   rs.movenext
loop

Conn.Close
Set Conn = Nothing
 %>
</body>
</html>
4

2 回答 2

1

如果它显示一个空白页,是否有可能on error resume next我们看不到(也许它在包含文件中)?

我会通过检查来处理这个问题eof,然后只在结果集不为空时才循环访问它

Set rs = Conn.Execute(strSql)

If rs.eof Then
  Response.write("No records returned")
Else
  do until rs.eof
    Response.write(rs("categorydesc") &  "<br>")
    rs.movenext
  loop
End If

rs.Close : set rs = nothing
Conn.Close : set Conn = Nothing

这与@03Usr 的回答并没有什么不同,除了:

  1. 您应该能够确定页面出现空白的原因。
  2. 除了关闭和处置您的连接对象外,您还应该关闭并处置您的记录集对象(即使它是空的)。
于 2012-06-09T15:53:26.283 回答
0

尝试这个:

If not rs.eof then
Do while not rs.eof or rs.bof 
      Response.write(rs("categorydesc") &  "<br>")
    rs.movenext
    Loop
 Else
      Response.Write "No records found"
 End If
于 2012-06-09T14:43:29.177 回答