C# 使用ASP.Net检查数据库中是否存在用户名
我想检查数据库中是否已经有用户名。它与我的更新声明一起提供。我有此代码,不知道将select语句放在何处:C# 使用ASP.Net检查数据库中是否存在用户名,c#,asp.net,sql-server,select,C#,Asp.net,Sql Server,Select,我想检查数据库中是否已经有用户名。它与我的更新声明一起提供。我有此代码,不知道将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='"
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();
}
我想要像这样的东西
"Select Username from Userdata Where Username = txtUser.Text"
您不需要在此处选择
ExecuteNonQuery()
返回受影响的行数,这意味着当它返回0时,数据库中没有具有给定名称的用户。如果一切顺利,它将返回1
您的代码易受SQL注入和资源泄漏的影响。这里有一个更好的版本:
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!" ;
}
}
}
}
您的问题不清楚,但您需要选择的目的是什么command@NazirUllah选择用户名是否在数据库中,如果是,则继续。如果否,error给我一个错误sir CommandText属性尚未初始化影响行为if(com.ExecuteNonQuery()==1)