如何检查ASP.NET中的用户名可用性和唯一性?

时间:2009-11-06 14:17:32

标签: asp.net

以最简单的方式:我如何检查用户名可用性?

当我在文本框中输入新用户并单击检查可用性按钮时,如果可用,它应以绿色显示用户名可用。并且不应该重复用户名。我的意思是两个用户名不应该相同。

3 个答案:

答案 0 :(得分:3)

如果您使用的是ASP.NET成员资格,则可以执行以下操作:

string userNameToCheck = txt_Username.Text;

MembershipUser existingUser = Membership.GetUser(userNameToCheck);
bool exists = existingUser != null;

如果您使用的是与ASP.NET成员资格不同的数据库结构,则只需对用户表进行like查询(分别替换UserTable,UserName和'Username'):

SELECT *
FROM 
   UserTable 
WHERE 
   UserName Like 'Username'

如果您取回任何结果,则该用户名已被使用。

答案 1 :(得分:0)

假设您将用户名存储在数据库中,您可以进行Ajax调用以检查数据库中的可用性。 jQuery有一个优秀的Ajax库。

答案 2 :(得分:0)

假设您的应用程序中有用户名和密码字段..当您在用户名中输入内容并单击选项卡时,我们必须检查用户名是否可用...现在我在这里解释

enter image description here

在上面的页面中,我有2个方框...在用户名文本框上双重clcik ..它将转到

protected void txtUsername_TextChanged(object sender,EventArgs e)     {     }

[txtUsername是我的用户名文本框的名称]

现在在txtUsername_Textchanged事件中我们必须编写用户可用性代码..

无论我们在用户名中给出什么,它都会与数据库中的用户名列进行比较。 所以首先我们检索数据读取器中的用户名列值。然后,如果我们在数据读取器中有行,那么该用户名已经被占用,如果没有,则可用..

     protected void txtUsername_TextChanged(object sender, EventArgs e)

   {

       if (!string.IsNullOrEmpty(txtUsername.Text))
    {

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings [“ymk”]。ConnectionString);

      con.Open();

SqlCommand cmd = new SqlCommand(“从数据中选择位置= @ Name”,con);

      cmd.Parameters.AddWithValue("@Name", txtUsername.Text);

         SqlDataReader dr = cmd.ExecuteReader();

          if (dr.HasRows)
        {
            checkusername.Visible = true;

            lblStatus.Text = "UserName Already Taken";
        }
        else
        {
            checkusername.Visible = true;

            lblStatus.Text = "UserName Available";
        }
    }
    else
    {
        checkusername.Visible = false;
    }
}