ASP检查用户名是否已被注册时出错!

来源:百度知道 编辑:UC知道 时间:2024/05/24 23:35:05
无论我测试注册的时候,用户名是否重复,系统都提示我"用户名重复"!
真重复的时候,数据库不发生变化,
如果实际没重复,则数据添加也成功了,但仍然提示"用户名重复!"
为什么无论重复不重复,都会运行提示呢???郁闷!
急待解决!
代码如下:
--------------------------------------
<!--#include file="conn.asp"-->
<%
'下面代码为"获得表单数据"并进行相关赋值
tjuserid=request.form("tjuserid")
U_name=request.form("U_name")
U_sex=request.form("U_sex")
age=request.form("age")
U_psw=request.form("U_psw")

'下面检验是不是用户名重复
set rs=Server.CreateObject("ADODB.recordset")
sqlCheck="select * from htsmw_shjia where U_name='"&U_name&"'"
rs.open sqlCheck,conn,3,3
if not rs.eof then
response.write "<SCRIPT language=JavaScript>alert('用户名重复,请重新选择一个用户名!');"
response.write "history.go(-1);</SCRIPT>"

if not rs.eof then
这里不能这样写.这句话的意思是未到达记录集末尾则提示...
这样写:
set rs=Server.CreateObject("ADODB.recordset")
sqlCheck="select count(*) as count from htsmw_shjia where U_name='"&U_name&"'"
rs.open sqlCheck,conn,1,1//这里应该是键集游标
if rs("count")>0 then
response.write "<SCRIPT language=JavaScript>alert('用户名重复,请重新选择一个用户名!');"
response.write "history.go(-1);</SCRIPT>"
response.End
end if
rs.close

这样就应当没错了 ,再加上 else 就不回出现你说的
“如果实际没重复,则数据添加也成功了,但仍然提示"用户名重复!" ”

set rs=Server.CreateObject("ADODB.recordset")
sqlCheck="select * from htsmw_shjia where U_name='"&U_name&"'"
rs.open sqlCheck,conn,3,3
if not rs.eof and not rs.bof then
response.write "<SCRIPT language=JavaScript>alert('用户名重复,请重新选择一个用户名!');"
response.write "history.go(