C# winform實現登陸次數限制_C#教程

來源:互聯網
上載者:User

我們在網上登陸的時候有些網站在使用者多次輸錯密碼之後會自動把賬戶凍結,不能在進行登陸,小編這次做的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的用法與好處》中已經寫過。

以上就是本文的全部內容,希望對大家的學習有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.