首页 c#登录窗体密码错误三次关闭窗体

c#登录窗体密码错误三次关闭窗体

举报
开通vip

c#登录窗体密码错误三次关闭窗体using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Configuration; using System.Data.sqlClient; namespac...

c#登录窗体密码错误三次关闭窗体
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Configuration; using System.Data.sqlClient; namespace denglu1._0 { public partial class Form1 : Form { string str = string.Empty; int errorcount = 0; public Form1() { InitializeComponent(); } private void btn_login_Click(object sender, EventArgs e) { str = ConfigurationManager.ConnectionStrings["strcnn"].ConnectionString; int sqlerror = GetError();//获取当期用户的登陆次数,以便进行比较 if (sqlerror >= 3) { Datetime errortime = GetErrorTime(); //Subtract函数减去指定时间,返回一个时间差,时间的格式可以是分钟也可以是秒、小时 TimeSpan span = DateTime.Now.Subtract(errortime); double minute = span.TotalMinutes;//取时间间隔的分钟数 // double m = span.TotalSeconds; if (minute < 2) { MessageBox.Show("您已经连续3次输入密码错误,系统已被锁定,请两分钟之后再次重试"); //后面的代码不执行 return; } else { errorcount = 0; UpdateError(errorcount); } } errorcount = GetError(); DataTable dt= GetDataTable(); if (dt .Rows .Count <=0) { errorcount++; UpdateError(errorcount); UpdateErrorTime(); MessageBox.Show("输入的用户名和密码不正确,请重新输入"); } else if (dt.Rows.Count > 1) { MessageBox.Show("系统出现故障,请与管理员联系"); } else {//登陆成功后,错误次数清零 errorcount = 0; UpdateError(errorcount ); MessageBox.Show("登陆成功"); } } //更改用户登陆错误的当前时间 private void UpdateErrortime() { sqlConnection sqlcnn = new SqlConnection(str); SqlCommand sqlcmm = new SqlCommand(); sqlcnn.Open(); sqlcmm.Connection = sqlcnn; sqlcmm.CommandText = "update users set errortime=@errortime where username=@username"; sqlcmm.Parameters.AddWithValue("@errortime", DateTime.Now); sqlcmm.Parameters.AddWithValue("@username", this.txt_name.Text); sqlcmm.ExecuteNonQuery(); } //获取当前用户错误登陆时的时间 private DateTime GetErrorTime() { SqlConnection sqlcnn = new SqlConnection(str); sqlCommand sqlcmm = new SqlCommand(); sqlcnn.Open(); sqlcmm.Connection = sqlcnn; sqlcmm.CommandText = "select errortime from users where username=@username"; sqlcmm.Parameters.AddWithValue("@username", this.txt_name.Text); //返回一行一列 object obj = sqlcmm.ExecuteScalar(); return Convert.ToDatetime(obj); } //获取用户登陆的错误次数 private int GetError() { SqlConnection sqlcnn = new SqlConnection(str ); SqlCommand sqlcmm = new SqlCommand(); sqlcnn.Open(); sqlcmm.Connection = sqlcnn; sqlcmm.CommandText = "select error from users where username=@username"; sqlcmm.Parameters.AddWithValue("@username",this .txt_name .Text ); object obj= sqlcmm.ExecuteScalar(); if (DBNull.Value.Equals(obj) == true)//判断下,若obj的值为空,则返回0 { return 0; } else { return Convert.ToInt32(obj ); } sqlcmm.Dispose(); sqlcnn.Close(); sqlcnn.Dispose(); } //更改相应用户的登陆错误次数 private void UpdateError(int errorcount) { SqlConnection sqlcnn = new SqlConnection(str); SqlCommand sqlcmm = new SqlCommand(); sqlcmm.Connection = sqlcnn; sqlcnn.Open(); sqlcmm.CommandText = "update users set error=@error where username=@username"; sqlcmm.Parameters.AddWithValue("@error",errorcount ); sqlcmm.Parameters.AddWithValue("username",this .txt_name .Text ); sqlcmm.ExecuteNonQuery(); sqlcmm.Dispose(); sqlcnn.Close(); sqlcnn.Dispose(); } //根据用户输入的用户和密码从数据库中查询相对应的数据集 private DataTable GetDataTable() { SqlConnection sqlcnn = new SqlConnection(str); SqlCommand sqlcmm = new SqlCommand(); sqlcmm.Connection = sqlcnn; sqlcmm.CommandText = "select * from users where username=@username and password=@pw"; sqlcmm.Parameters.AddWithValue("@username", this.txt_name.Text); sqlcmm.Parameters.AddWithValue("@pw", this.txt_pw.Text); SqlDataAdapter sda = new SqlDataAdapter(sqlcmm ); DataTable dt = new DataTable(); sda.Fill(dt ); sqlcmm.Dispose(); sqlcnn.Close();//关闭连接 sqlcnn.Dispose();//释放资源 return dt; } } } 代码:要有一定的思路 注意:1.多用户登陆时,用户错误登陆次数的问题 2.用户登陆成功后,要把错误次数清零 3.用户登陆的错误次数超过三次后,不能再累加次数,这里要限制。 4.当错误的登陆次数大于3次且在限定的时间之内时,不能再执行下面的语句。。。
本文档为【c#登录窗体密码错误三次关闭窗体】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_348501
暂无简介~
格式:doc
大小:24KB
软件:Word
页数:0
分类:互联网
上传时间:2019-08-19
浏览量:54