简体   繁体   English

使用ASP.Net检查用户名是否在数据库中

[英]Check if username is in the database using ASP.Net

I want to check if a username is already in the database. 我想检查用户名是否已经在数据库中。 It comes along with my update statement. 它与我的更新语句一起提供。 I have this code and I do not know where to put the select statement: 我有以下代码,但我不知道将select语句放在哪里:

protected void btn_update_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(conn);
    con.Open();

    str = "update UserData set Password=@Password where UserName='" + txtUser.Text + "'";

    com = new SqlCommand(str, con);

    com.Parameters.Add(new SqlParameter("@Password", SqlDbType.VarChar));
    com.Parameters["@Password"].Value = BusinessLayer.ShoppingCart.CreateSHAHash(txtPW.Text);

    com.ExecuteNonQuery();

    con.Close();
    Label1.Visible = true;
    Label1.Text = "Password changed Successfully!" ;

    con.Close();
}

I want something like 我想要类似的东西

"Select Username from Userdata Where Username = txtUser.Text"

You don't need a SELECT here. 您不需要在这里进行SELECT ExecuteNonQuery() returns the number of rows affected, which means that when it returns 0, there was no user with the given name in the database. ExecuteNonQuery()返回受影响的行数,这意味着当它返回0时,数据库中没有使用给定名称的用户。 If all went well, it should return 1. 如果一切顺利,它应该返回1。

Your code is vulnerable to SQL injection and leaks resources. 您的代码容易受到SQL注入的攻击,并会泄漏资源。 Here's a better version: 这是一个更好的版本:

protected void btn_update_Click(object sender, EventArgs e)
{
    using(var con = new SqlConnection(conn))
    {        
        con.Open();
        var commandTest = "update UserData set Password=@Password where UserName=@Username";

        using(var com = new SqlCommand(commandTest, con))
        {
            com.Parameters.AddWithValue("@Username", txtUser.Text);
            com.Parameters.AddWithValue("@Password", BusinessLayer.ShoppingCart.CreateSHAHash(txtPW.Text));

            if(com.ExecuteNonQuery() == 1)
            {
                Label1.Visible = true;
                Label1.Text = "Password changed Successfully!" ;            
            }
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用AJAX DOJO工具包检查ASP.Net中的用户名可用性 - Check Username Availability in ASP.Net using AJAX DOJO Toolkit 检查用户名是否存在于asp.net表单中 - Check if username exists in a asp.net form 在asp.net中验证数据库中的用户名和密码 - Validating username and password in a database in asp.net 使用存储过程并将值添加到Registration.aspx中,检查asp.net中是否存在用户名 - Check if username exist in asp.net using stored procedure and adding values to Registration.aspx 用户注册-asp.net时,用户名检查不起作用 - Username check is not working when user registers -asp.net ASP.NET身份自定义PasswordValidator检查用户名 - ASP.NET Identity Custom PasswordValidator check against Username 如何使用asp.net中的bootstrap验证器验证数据库中的用户名 - How to validate a username from database using bootstrap validator in asp.net 使用ASP.NET登录后如何获取用户名和角色? (将aspnetdb集成到我的数据库中) - How to get username and role after login using ASP.NET? (integrated aspnetdb into my database) 检查用户是否存在于ASP.NET的数据库中 - Check if user exists in database in ASP.NET Asp.net身份在数据库中的用户名列中搜索电子邮件 - Asp.net identity searching for email in username column in database
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM