Sql ASP/MS访问检查用户名是否存在

Sql ASP/MS访问检查用户名是否存在,sql,ms-access,asp-classic,ado,Sql,Ms Access,Asp Classic,Ado,我正在用ASP创建我的第一个项目。这个项目只是使用注册系统进行基本的登录/注销。我想知道如何修复下面的代码,以便当用户注册到我的网站并输入我数据库中已存在的重复用户名时,它将重定向到表单,所有字段仍已填写,但用户名字段为空,显示用户已存在的消息 下面是我的代码: <% Dim objShop set objShop=Server.CreateObject("ADODB.Recordset") objShop.ActiveConnection=shop_STRING objShop.So

我正在用ASP创建我的第一个项目。这个项目只是使用注册系统进行基本的登录/注销。我想知道如何修复下面的代码,以便当用户注册到我的网站并输入我数据库中已存在的重复用户名时,它将重定向到表单,所有字段仍已填写,但用户名字段为空,显示用户已存在的消息

下面是我的代码:

<%
Dim objShop
set objShop=Server.CreateObject("ADODB.Recordset")

objShop.ActiveConnection=shop_STRING

objShop.Source = "SELECT * FROM Users WHERE UserName=" & Request.Form("regUsername")
objShop.CursorType=0
objShop.CursorLocation=2
objShop.LockType=3
objShop.Open

if not (objShop.EOF) then
    objShop.Source="Users"
    objShop.CursorType=0
    objShop.CursorLocation=2
    objShop.LockType=3
    objShop.Open

        objShop.Addnew
        objShop("FirstName")= Request.Form("regFirst")
        objShop("LastName")= Request.Form("regLast")
        objShop("StudentID")= Request.Form("regID")
        objShop("EmailAddress")= Request.Form("regEmail")
        objShop("UserName")= Request.Form("regUsername")
        objShop("Password")= Request.Form("regPassword")
        objShop("Address")= Request.Form("regAddress")
        objShop("Suburb")= Request.Form("regSuburb")
        objShop("Postcode")= Request.Form("regPostcode")
        objShop("ContactNumber")= Request.Form("regContact")
        objShop("CCCompany")= Request.Form("regCCCompany")
        objShop("CCNumber")= Request.Form("regCCNumber")
        objShop("CCExpiryMonth")= Request.Form("regCCExpMonth")
        objShop("CCExpiryYear")= Request.Form("regExpYear")
        objShop("CCCVCNumber")= Request.Form("regCVCNumber")
        objShop.Update

    objShop.Close
    set objShop= nothing
else
    response.write("Username already exists")
end if
%>
因此,我决定在添加值之前将response.write(“用户名已存在”)再次放在if语句中,然后出现以下错误:

Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'UserName='.

/home/registration.asp, line 17 

我不知道该如何纠正这个问题。任何帮助都将不胜感激

在SQL表达式中的输入周围需要单引号

objShop.Source = "SELECT * FROM Users WHERE UserName='" & _
                    Request.Form("regUsername") & "'"

考虑一下当前逻辑的这个伪代码版本

if not (objShop.EOF) then
    AddNew
Else
    display notice that user account already exists
not(objShop.EOF)如果用户表中有一条或多条用户名与regUsername匹配的记录,则为True

你的意思是:

If we have previously stored one or more records for this UserName 
    add another record for this UserName 
Else (no matching record exists)
    display notice that user account already exists

显然,您不应该收集和存储信用卡信息。

现在它显示Microsoft VBScript运行时错误“800a01a8”需要对象:“”/home/registration.asp,第13行,位于
objShop.Source=…
If we have previously stored one or more records for this UserName 
    add another record for this UserName 
Else (no matching record exists)
    display notice that user account already exists