使用ASP.NET防止重复的用户名

时间:2011-09-01 13:50:12

标签: .net asp.net

我有一个注册表。我想用ASP.NET防止重复的用户名。现在,我可以做以防止重复的用户名。但是,我想给User一个警告信息。我可以这样做吗?

代码:

try{

SqlCommand cmd = sqlConnection.command("If not exists (Select user_name from users Where user_name=@userName) Insert into users(userId,user_name,user_surname,email) Values (@userID,@userName,@userSurname,@email)");

        SqlParameter p1 = new SqlParameter("@userID", Session["userID"].ToString());
        SqlParameter p2 = new SqlParameter("@userName", txt_userName.Text);
        SqlParameter p3 = new SqlParameter("@userSurname", txt_surName.Text);
        SqlParameter p4 = new SqlParameter("@email", txt_email.Text);

        cmd.Parameters.Add(p1);
        cmd.Parameters.Add(p2);
        cmd.Parameters.Add(p3);
        cmd.Parameters.Add(p4);
        cmd.ExecuteNonQuery();

        myConnect.close();
}
catch (Exception ex)
    {          
    Response.Write("<script>alert("+ex.Message+ ")</script>");

    }
 }

2 个答案:

答案 0 :(得分:0)

ExecuteNonQuery返回受命令影响的行数。在您的情况下,它将是0(未插入)或1(插入)。

int res = cmd.ExecuteNonQuery();
if (1 != res)
{
    //show warning
}

答案 1 :(得分:0)

似乎就像您自己在数据库中存储用户帐户一样。你为什么不使用ASP.NET Membership框架?您可以在成员资格框架中配置各种设置,包括Unique Email Addresses。我现在还不记得它是否支持独特的用户名,但是整体使用框架是个更好的主意。

ASP.NET 2.0 Membership Framework