日期:2014-05-18  浏览次数:20706 次

小问题 如何单个比较数据库里的用户名和密码
private void button1_Click(object sender, EventArgs e)
  {
  string Uname = this.textBox1.Text;
  string Upwd = this.textBox2.Text;
  string sql="server=.;uid=sa;pwd=123456;database=db_EquipmentMS;";
  string sql2="select * from tb_User where userName=@Uname and userPwd=@Upwd";

  using (SqlConnection conn = new SqlConnection(sql))
  {
  conn.Open();
  using (SqlCommand comd = new SqlCommand(sql2,conn))
  {
  SqlParameter param1 = comd.Parameters.Add("@Uname", SqlDbType.VarChar);
  param1.Value = Uname;
  SqlParameter param2 = comd.Parameters.Add("@Upwd", SqlDbType.VarChar);
  param2.Value = Upwd;
  SqlDataReader reader = comd.ExecuteReader();
  if (reader.Read())
{
MessageBox.Show("成功!");
}
else
{
MessageBox.Show("cuowu!");
} }
  }
  }


我想单个的去比较用户名和密码是否正确。。。用户名错了就是用户名错了,密码就是密码。而不是我现在这种错了不知道哪个

麻烦有空帮忙改下 谢谢

------解决方案--------------------
只通过用户名取得记录
select * from tb_User where userName=@Uname

如果返回记录,则说明用户名是正确的。

然后比较返回的密码和用户的密码。
------解决方案--------------------
我想单个的去比较用户名和密码是否正确。。。用户名错了就是用户名错了,密码就是密码。而不是我现在这种错了不知道哪个 
------------------------
你这样会有漏洞的,比如某个非注册想登录,当提示密码错了,意思就是用户名对了,这样他可以只处理密码就可以登录了,如果是按你原来的方法,那他就不知道是用户名还是密码错了,这样他要花更多的时间和精力来登录了。