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 に答える