我们在网上登陆的时候有些网站在用户多次输错密码之后会自动把账户冻结,不能在进行登陆,笔者这次做的winform程序就是要实现这种功能。

  功能一:根据数据库字段判断用户名和密码是否匹配;

  功能二:如果输入错误自动记录连续错误次数;

  功能三:如果用户登陆成功之后会自动清除错误次数,使用户仍然可以连续登陆3次;

  首先在winform窗体上拖入两个label和textbox,textbox分别命名为txbUserName,txbPassWord;然后在拖入一个button按钮;双击button按钮写按钮事件,代码如下:

 1         private void button1_Click(object sender, EventArgs e)
 2         {
 3             using (SqlConnection con = new SqlConnection("server=.; database=text; integrated security=SSPI;"))
 4             {
 5                 using (SqlCommand com = new SqlCommand())
 6                 {
 7                     com.CommandText = "select * from T_Users where UserName=@username";
 8                     com.Connection = con;
 9                     con.Open();
10                     com.Parameters.Add(new SqlParameter("username", txbUserName.Text));
11                     //com.Parameters.Add(new SqlParameter("password", textBox2.Text));
12                     using (SqlDataReader read = com.ExecuteReader())
13                     {
14                         if (read.Read())
15                         {
16                             int errortimes = read.GetInt32(read.GetOrdinal("ErrorTimes"));  //读取错误登陆次数
17                             if (errortimes >= 3)        //判断错误次数是否大于等于三
18                             {
19                                 MessageBox.Show("sorry 你已经不能再登陆了!");
20                             }
21                             else
22                             {
23                                 string passwored = read.GetString(read.GetOrdinal("PassWord"));
24                                 if (passwored == txbPassWord.Text)
25                                 {
26                                     MessageBox.Show("登陆成功!");
27                                     this.qingling();                //登陆成功把错误登陆次数清零
28                                 }
29                                 else
30                                 {
31                                     MessageBox.Show("登陆失败!");
32                                     this.leiji();               //登陆失败把错误登陆次数加一
33                                 }
34                             }
35                         }
36                     }
37                 }
38             }
39         }

累加错误登陆次数函数

 1         public void leiji()
 2         {
 3             using (SqlConnection con = new SqlConnection("server=.; database=text; integrated security=SSPI;"))
 4             {
 5                 using (SqlCommand com = new SqlCommand())
 6                 {
 7                     com.Connection = con;
 8                     com.CommandText = "update T_Users set ErrorTimes=ErrorTimes+1 where UserName=@username";
 9                     com.Parameters.Add(new SqlParameter("username", txbUserName.Text));
10                     con.Open();
11                     com.ExecuteNonQuery();
12                 }
13             }
14         }

清零错误登陆次数函数

 1         public void qingling()
 2         {
 3             using (SqlConnection con = new SqlConnection("server=.; database=text; integrated security=SSPI;"))
 4             {
 5                 using (SqlCommand com = new SqlCommand())
 6                 {
 7                     com.Connection = con;
 8                     com.CommandText = "update T_Users set ErrorTimes=0 where UserName=@username";
 9                     com.Parameters.Add(new SqlParameter("username", txbUserName.Text));
10                     con.Open();
11                     com.ExecuteNonQuery();
12                 }
13             }
14         }

  在button事件的代码中笔者使用了using 关于using的用法与好处在【C#】using用法中已经写过。

转载于:https://www.cnblogs.com/ngnetboy/archive/2012/05/26/2519269.html

【C#】登陆次数限制相关推荐

  1. java 错误登陆次数_纯java代码实现登陆次数验证,登陆错误5次之后锁定30分钟

    本方法因为是根据思路纯手写,代码可以再简化,功能尝试没问题,最主要就是在登陆验证中的逻辑,checkLogin()方法是登录前的验证,而真正的登陆方式采用的是Shiro,若不是采用Shiro登陆,将该 ...

  2. 利用HttpSession记录用户的登陆次数

    场景:目前有两种登录方式,首先是人脸认证登录,如果累计认证失败三次,那么就将页面转发到用户名.密码登录的方式,所以这里就需要对当前用户登录失败的次数做统计,因为利用数据库再去存储这些信息很麻烦,要修改 ...

  3. 帝国empirecms后台登陆次数限制修改

    打开文件:\e\config\config.php, 找到 'loginnum'=>5, 把5改为自己想要的数字即可 转载于:https://www.cnblogs.com/bubuchu/p/ ...

  4. oracle密码登陆次数限制,oracle永久密码和登陆次数无限制设置

    http://www.cnblogs.com/tippoint/archive/2013/03/08/2950126.html 修改oracle用户密码永不过期: 1.查看用户的proifle是哪个, ...

  5. php错误密码也能登陆账号,php用户登陆代码(限制用户错误登录次数)(1/2

    php用户登陆代码(限制用户错误登录次数)(1/2)php用户登陆代码(限制用户错误登录次数) php教程用户登陆代码(限制用户错误登录次数) session_start(); include(&qu ...

  6. linux用户解锁pam_tally,Linux使用PAM锁定多次登陆失败的用户(含重置错误次数)...

    修改如下文件: /etc/pam.d/sshd    (远程ssh) /etc/pam.d/login    (终端) 在第一行下即#%PAM-1.0的下面添加: auth    required   ...

  7. 若登陆账号错误次数过多则限制登陆一定时长(自定义时长)

    前提须知:登陆拦截器 此演示:登陆5次错误 则限制登陆时长5秒 业务层实现方法 在控制器中使用此方法,若判断用户账户和密码是否正确则返回用户对象 定义session中的key为'count' 定义一个 ...

  8. QML与C++交互:登陆界面设计

    环境: 主机:WIN7 开发环境:Qt5.2.1 说明: QML设计前台界面,C++后台负责逻辑 效果图: 源代码: 前台qml文件 login.qml [javascript] view plain ...

  9. “烟花”来势汹汹!用数据可视化告诉你:台风最爱在哪登陆?

    台风"烟花"在今天9点前后在浙江二次登陆,强度为强热带风暴级,中心附近最大风力有10级(28米/秒),浙江.上海.江苏等华东地区或将遭遇风.雨.潮齐袭. 台风预测所到之处的城市,纷 ...

最新文章

  1. Go 指针 unsafe.Pointer
  2. wxWidgets:wxAny类用法
  3. 记录关于vs2008 和vs2015 的报错问题
  4. 水滴石穿C语言之编译器引出的问题
  5. python代码技巧_几个小技巧让你的Python代码更Pythonic
  6. 随想录(redis的学习和使用)
  7. Ext JS的模块化开发(Package)
  8. 25个恶意JavaScript 库通过NPM官方包仓库分发
  9. FMEA失效模式和影响分析中措施优先级AP值的方法
  10. html简单页面实验报告原理,html网页设计实验报告
  11. Visual Studio2022 离线安装包下载
  12. 如何同步企业微信的标签?
  13. lisp 阿基米德螺旋_用Auto CAD怎样画椭圆螺旋
  14. 如何更改QQ截图的快捷键
  15. 哺乳期这几种还真的要少吃,不能吃的食物真有那么多?
  16. python字符串查找位置_python中怎么返回指定查找字符的位置
  17. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——2.7 高阶组件...
  18. IntelliJ IDEA 之 配置JDK 的 4种方式
  19. 肾有多好人就有多年青――男女通用
  20. winform如何修改exe文件的图标

热门文章

  1. 2022-2028年中国廉价航空行业深度调研及投资前景预测报告
  2. Python 标准库之 Queue
  3. python重难点之装饰器详解
  4. viterbi维特比算法和隐马尔可夫模型(HMM)
  5. 缓存击穿、缓存穿透、缓存雪崩
  6. 最新Maven及Tomcat配置~(IDEA版 试错无数!)
  7. Intel GPU实现游戏与数据中心
  8. 特征提取,转换和选择
  9. 用于ONNX的TensorRT后端
  10. dp,sp,px相互转化