public partial class LoginWindow : Window
{
public LoginWindow()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, RoutedEventArgs e)
{
if (txtUserName .Text .Length <= 0 )
{
MessageBox.Show("请输入用户名");
return;
}
if(pswPassword.Password.Length <= 0)
{
MessageBox.Show("请输入密码");
return;
}
DataTable table = SqlHelper.ExecuteDataTables("select * from T_User where UserName = @UserName "
, new SqlParameter("@UserName", txtUserName.Text));
//编程的时候要对“不可能发生的情况作处理”
if (table.Rows.Count <=0)
{
MessageBox.Show("该用户不存在");
return;
}
//多重防御,Assert 断言
//多重关卡
if (table.Rows .Count >1)
{
throw new Exception("用户名重复!");
}
DataRow row = table.Rows[0];
string dbPassword = (string)row["Password"];
long id = (long ) row ["Id"];
int errorTimes = (int)row["ErrorTimes"];
if(errorTimes >=3)
{
MessageBox.Show("输入次数过多用户已经锁定");
return;
}
if (dbPassword != pswPassword.Password )
{
SqlHelper.ExecuteNonQuery("Update T_User Set ErrorTimes=ErrorTimes+1 where Id = @Id", new SqlParameter("@Id", id));
MessageBox.Show("密码错误!");
}
else
{
MessageBox.Show("登录成功");
}
}
}