C# 检查用户名是否存在

C# 检查用户名是否存在,c#,asp.net,C#,Asp.net,我开始对一个网站进行编码,目前我正在做一个用户创建页面。所有的验证都很好,但是我不确定在checkUsername方法中加入什么来验证用户名是否已经存在。下面是我的ASP.NET代码 <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <p> <asp:ValidationSummary ID="ValidationSummary1" runat="

我开始对一个网站进行编码,目前我正在做一个用户创建页面。所有的验证都很好,但是我不确定在checkUsername方法中加入什么来验证用户名是否已经存在。下面是我的ASP.NET代码

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
  <p>
  <asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="There were errors on the page:" />
  </p>
  <p>
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"  ControlToValidate="username" ErrorMessage="Username is required."> *</asp:RequiredFieldValidator>
  Enter Username <asp:TextBox ID="username" runat="server"></asp:TextBox>
     <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="username" ErrorMessage="Username must be 4-10 letters or numbers." ValidationExpression="[a-zA-Z0-9]{4,10}" />
        <asp:CustomValidator ID="CustomValidator1" runat="server" controltovalidate="username" errormessage="Username is already in use." OnServerValidate="checkUsername" />
 </p>
 <p>
 Enter Password <asp:TextBox ID="entPWD" runat="server" TextMode="Password"></asp:TextBox>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" display="dynamic" ControlToValidate="entPWD" ErrorMessage="Password must contain one of the following: @#$%^&*/." ValidationExpression=".*[@#$%^&*/].*" />
        <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" display="dynamic" ControlToValidate="entPWD" ErrorMessage="Password must be 6-12 characters." ValidationExpression="[^\s]{6,12}" />
 </p>
 <p>
 Confirm Password <asp:TextBox ID="confPWD" runat="server" TextMode="Password"></asp:TextBox>
        <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="entPWD" ControlToCompare="confPWD" ErrorMessage="Passwords do not match." />
    </p>
    <asp:Button type="submit" ID="Button1" runat="server" Text="Submit" />
</asp:Content>
运行代码时,会收到以下错误消息:

Compiler Error Message: CS1061: 'ASP.default_aspx' does not contain a definition for 'checkUsername' and no extension method 'checkUsername' accepting a first argument of type 'ASP.default_aspx' could be found (are you missing a using directive or an assembly reference?)
我不知道我会错在哪里。我已经使用System.Data.SqlClient;在代码隐藏中,还添加了对system.data.dll的引用


任何帮助都将不胜感激

自定义验证方法需要以下方法签名:

void checkUsername(object source, ServerValidateEventArgs args)
ServerValidateEventArgs将具有该值,而不是以字符串形式传递用户名

不要返回true或false进行验证,请使用以下命令:

args.IsValid = true; 

有关使用CustomValidator的更多信息,请参见本页:

自定义验证方法需要以下方法签名:

void checkUsername(object source, ServerValidateEventArgs args)
ServerValidateEventArgs将具有该值,而不是以字符串形式传递用户名

不要返回true或false进行验证,请使用以下命令:

args.IsValid = true; 

有关使用CustomValidator的更多信息,请参见本页:

尝试将方法
设置为公共
,而不是
私有
。您的ASPX页面正在尝试访问它,但它是
private

请尝试将该方法
设置为public
而不是
private
。您的ASPX页面正在尝试访问它,但它是受保护的
私有的

,这是一种更好的做法,因为这些方法永远不会在该页面之外使用。是的,但这并不太令人担心,因为它是一个网站。但是,是的,
protected
将是最严格的访问修饰符,可以用于此。protected将是更好的做法,因为这些方法永远不会在该页面之外使用。没错,但这并不太令人担心,因为它是一个网站。但是是的,
protected
将是最严格的访问修饰符。