注册 登录
编程论坛 ASP技术论坛

記錄集合

rgbtdkjcel 发布于 2007-12-17 16:56, 899 次点击
Do While Not rs.eof
         If (username=rs("name") And userpassword=rs("pwd")) Then
            If (username="admin") Then
              session("admin")="admin"
              session("username")=username
              response.redirect "manager.asp"
              Else
                session("status")="ok"
                session("username")=username
                response.redirect "main.asp"
             End If
            Else
             response.write "aa"
             End If
           rs.movenext
              loop

當if語句為假時。為何response.write "aa"執行的次數是數據庫中的記錄條數呢?我想只輸出一次該如何處理!!!謝謝
2 回复
#2
tianyu1232007-12-17 17:19
你使用了 do while ... loop 当然会遍历数据库中的所有记录
<%
username=request.form("username")
userpassword=request.form("userpassword")
set rs=server.createobject("adodb.recordset")
sql="select name,pwd from 用户表 where name=' "& username & "'"
rs.open sql,conn,1,1
if not(rs.bof and rs.eof) then
   if username=rs("name") and userpassword=rs("pwd") then
      If (username="admin") Then
          session("admin")="admin"
          session("username")=username
          response.redirect "manager.asp"
       else
          session("status")="ok"
          session("username")=username
           response.redirect "main.asp"
       end if
   else
     response.write"<script>alert('密码错误!');history.go(-1);</script>"
   end if
else
   response.write"<script>alert('用户名错误!');history.go(-1);</script>"
   rs.close
   set rs=nothing
   conn.close
   set conn=nothing
   response.end
end if
%>
#3
yms1232007-12-17 17:50
Do While Not rs.eof
         If (username=rs("name") And userpassword=rs("pwd")) Then
            If (username="admin") Then
              session("admin")="admin"
              session("username")=username
              response.redirect "manager.asp"
              Else
                session("status")="ok"
                session("username")=username
                response.redirect "main.asp"
             End If
            Else
             response.write "aa"
             End If
           rs.movenext
              loop
证明记录集中没有符合(username=rs("name") And userpassword=rs("pwd"))
这个条件的记录集,察看变量是否有值。
1