关于ASP问题.大家帮忙看看啦~~谢谢啦

来源:百度知道 编辑:UC知道 时间:2024/05/19 23:33:22
<%
dim Admin_Name,Admin_User,Admin_Gps,Admin_Nps,Admin_Pas,Url
Admin_Name = Session("user")
Admin_User = Request.Form("Admin_User")
Url="admin.asp"
set rs=server.createobject("adodb.recordset")
sql="select admin_name from admin where admin_name = '"&Admin_User&"'"
rs.open sql,conn,1,1
if not rs.eof then
rs.MoveNext
do while Admin_User = trim(rs("admin_name"))
Response.Write "<script>alert('对不起!该账号已存在,请换别的账号,请重新更换账号,才能成功修改.');this.location.href='"&Url&"';</SCRIPT>"
Response.End
rs.MoveNext
loop
rs.MoveFirst
end if
rs.Close
set rs = nothing
%>

错误原因:
错误类型:
(0x80020009)
发生意外。
/well_student/mod_admin.asp, 第 42 行 ( 就是这一行 do while Admin_User = trim(rs("admin_name")) )

0x80020009发生的原因是记录集指针没有指到数据上,从您的代码来看rs记录集得到的数据集可能只有一条,因此 当在开始执行了
if not rs.eof then
rs.MoveNext
之后, rs的指针应该是处在eof的位置,也就是说,这个时候
记录集指针没有指到数据上,那么当读取一个字段的值的时候发生错误也就不奇怪了,我想您开始的这个rs.movenext应该是rs.movefirst吧

。。。。。
rs.open sql,conn,1,1
if not rs.eof then
Response.Write "<script>alert('对不起!该账号已存在,请换别的账号,请重新更换账号,才能成功修改.');this.location.href='"&Url&"';</SCRIPT>"
end if
rs.Close
set rs = nothing