我們在網上登陸的時候有些網站在使用者多次輸錯密碼之後會自動把賬戶凍結,不能在進行登陸,小編這次做的winform程式就是要實現這種功能,具體內容如下
功能一:根據資料庫欄位判斷使用者名稱和密碼是否匹配;
功能二:如果輸入錯誤自動記錄連續錯誤次數;
功能三:如果使用者登陸成功之後會自動清除錯誤次數,使使用者仍然可以連續登陸3次;
首先在winform表單上拖入兩個label和textbox,textbox分別命名為txbUserName,txbPassWord;然後在拖入一個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")); //讀取錯誤登陸次數 if (errortimes >= 3) //判斷錯誤次數是否大於等於三 { MessageBox.Show("sorry 你已經不能再登陸了!"); } else { string passwored = read.GetString(read.GetOrdinal("PassWord")); if (passwored == txbPassWord.Text) { MessageBox.Show("登陸成功!"); this.qingling(); //登陸成功把錯誤登陸次數清零 } else { MessageBox.Show("登陸失敗!"); this.leiji(); //登陸失敗把錯誤登陸次數加一 } } } } } } }
累加錯誤登陸次數函數:
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(); } } }
清零錯誤登陸次數函數:
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,關於using的用法與好處在《談C# using的用法與好處》中已經寫過。
以上就是本文的全部內容,希望對大家的學習有所協助。