C# winform實(shí)現(xiàn)登陸次數(shù)限制
我們?cè)诰W(wǎng)上登陸的時(shí)候有些網(wǎng)站在用戶多次輸錯(cuò)密碼之后會(huì)自動(dòng)把賬戶凍結(jié),不能在進(jìn)行登陸,小編這次做的winform程序就是要實(shí)現(xiàn)這種功能,具體內(nèi)容如下
功能一:根據(jù)數(shù)據(jù)庫(kù)字段判斷用戶名和密碼是否匹配;
功能二:如果輸入錯(cuò)誤自動(dòng)記錄連續(xù)錯(cuò)誤次數(shù);
功能三:如果用戶登陸成功之后會(huì)自動(dòng)清除錯(cuò)誤次數(shù),使用戶仍然可以連續(xù)登陸3次;
首先在winform窗體上拖入兩個(gè)label和textbox,textbox分別命名為txbUserName,txbPassWord;然后在拖入一個(gè)button按鈕;雙擊button按鈕寫按鈕事件,代碼如下:
private void button1_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection("server=.; database=text; integrated security=SSPI;"))
{
using (SqlCommand com = new SqlCommand())
{
com.CommandText = "select * from T_Users where UserName=@username";
com.Connection = con;
con.Open();
com.Parameters.Add(new SqlParameter("username", txbUserName.Text));
//com.Parameters.Add(new SqlParameter("password", textBox2.Text));
using (SqlDataReader read = com.ExecuteReader())
{
if (read.Read())
{
int errortimes = read.GetInt32(read.GetOrdinal("ErrorTimes")); //讀取錯(cuò)誤登陸次數(shù)
if (errortimes >= 3) //判斷錯(cuò)誤次數(shù)是否大于等于三
{
MessageBox.Show("sorry 你已經(jīng)不能再登陸了!");
}
else
{
string passwored = read.GetString(read.GetOrdinal("PassWord"));
if (passwored == txbPassWord.Text)
{
MessageBox.Show("登陸成功!");
this.qingling(); //登陸成功把錯(cuò)誤登陸次數(shù)清零
}
else
{
MessageBox.Show("登陸失敗!");
this.leiji(); //登陸失敗把錯(cuò)誤登陸次數(shù)加一
}
}
}
}
}
}
}
累加錯(cuò)誤登陸次數(shù)函數(shù):
public void leiji()
{
using (SqlConnection con = new SqlConnection("server=.; database=text; integrated security=SSPI;"))
{
using (SqlCommand com = new SqlCommand())
{
com.Connection = con;
com.CommandText = "update T_Users set ErrorTimes=ErrorTimes+1 where UserName=@username";
com.Parameters.Add(new SqlParameter("username", txbUserName.Text));
con.Open();
com.ExecuteNonQuery();
}
}
}
清零錯(cuò)誤登陸次數(shù)函數(shù):
public void qingling()
{
using (SqlConnection con = new SqlConnection("server=.; database=text; integrated security=SSPI;"))
{
using (SqlCommand com = new SqlCommand())
{
com.Connection = con;
com.CommandText = "update T_Users set ErrorTimes=0 where UserName=@username";
com.Parameters.Add(new SqlParameter("username", txbUserName.Text));
con.Open();
com.ExecuteNonQuery();
}
}
}
在button事件的代碼中小編使用了using,關(guān)于using的用法與好處在《談C# using的用法與好處》中已經(jīng)寫過(guò)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- Oracle 添加用戶并賦權(quán),修改密碼,解鎖,刪除用戶的方法
- Oracle新建用戶、角色,授權(quán),建表空間的sql語(yǔ)句
- [Oracle] 如何使用觸發(fā)器實(shí)現(xiàn)IP限制用戶登錄
- Zend Framework框架的session會(huì)話周期及次數(shù)限制使用示例
- perl腳本實(shí)現(xiàn)限制ssh最大登錄次數(shù)(支持白名單)
- ORACLE 10G修改字符編碼沒(méi)有超字符集的限制
- javascript Deferred和遞歸次數(shù)限制實(shí)例
- Java用Cookie限制點(diǎn)贊次數(shù)(簡(jiǎn)版)
- java發(fā)送短信系列之限制日發(fā)送次數(shù)
- Oracle用戶連續(xù)登錄失敗次數(shù)限制如何取消
相關(guān)文章
C#通過(guò)反射獲取當(dāng)前工程中所有窗體并打開(kāi)的方法
這篇文章主要介紹了C#通過(guò)反射獲取當(dāng)前工程中所有窗體并打開(kāi)的方法,涉及C#針對(duì)窗體的獲取與顯示等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
淺談C#中ToString()和Convert.ToString()的區(qū)別
本文介紹了ToString()和Convert.ToString()的使用方法,他們之間的區(qū)別,以及從object到string的轉(zhuǎn)換方法,希望對(duì)學(xué)習(xí)C#編程的你有所幫助2016-11-11
C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄
這篇文章主要為大家詳細(xì)介紹了C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼
這篇文章主要介紹了基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼,需要的朋友可以參考下2014-07-07

