目录
一、概述
二、用户功能设计
1、用户登录界面
2、数据库设计
(1)在数据库中创建数据表T_User
(2)使用SQL查询语句在T_User中写入数据
?三、代码编写
1、取消按钮程序
2、登录按钮程序
测试
?3、修改ErrorTimes值
工程下载连接
一、概述
程序功能:在C# Winform中创建用户登录界面程序,对用户输入的用户名和密码与数据库中存储的数据进行比较,比较 相同则提示登录成功、否则登录失败,连续三次用户名和密码不对则禁止再次登录。
二、用户功能设计
1、用户登录界面
2、数据库设计
(1)在数据库中创建数据表T_User
(2)使用SQL查询语句在T_User中写入数据
sql查询语句写数据(也可以手动编辑插入数据)
insert into T_User(UserName,PassWord,ErrorTimes) values ('pan','123',0);
insert into T_User(UserName,PassWord,ErrorTimes) values ('wang','456',0);
?在数据表中查看数据是否写入成功
?三、代码编写
1、取消按钮程序
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
2、登录按钮程序
private void btnOK_Click(object sender, EventArgs e)
{
if (txtUserName.Text.Length <= 0)
{
MessageBox.Show("请输入用户名", "提示");
return;
}
if (txtPassWord.Text.Length <= 0)
{
MessageBox.Show("请输入密码", "提示");
return;
}
DataTable table = SqlHelper.ExecuteDataTable("select * from T_User where UserName=@userName"
, new SqlParameter[] { 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 != txtPassWord.Text)
{
//在数据库中把登录用户对应的ErrorTimes进行自加
SqlHelper.ExecuteNonQuery("update T_User set ErrorTimes=ErrorTimes+1 where ID=@id "
,new SqlParameter("ID",id));
MessageBox.Show("密码错误", "提示");
return;
}
else
{
MessageBox.Show("登录成功", "提示");
}
}
测试
(1)用户名不存在
(2) 未输入密码
?(3)密码不对超过三次
?(4)登录成功
?3、修改ErrorTimes值
在数据库中使用查询语句,将ErrorTimes值重新设置为0
update T_User set ErrorTimes=0 where ID=1
工程下载连接
https://download.csdn.net/download/panjinliang066333/85197932
创作不易,请多多支持
?
|