C# winform实现登陆次数限制

 更新时间:2016年05月07日 17:02:37   作者:net小伙  
这篇文章主要介绍了C# winform实现登陆次数限制,相信大家都遇到过网站在用户多次输错密码之后会自动把账户冻结的情况,这种功能如何实现,下面小编为大家分享实现方法

我们在网上登陆的时候有些网站在用户多次输错密码之后会自动把账户冻结,不能在进行登陆,小编这次做的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的用法与好处》中已经写过。

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • c#数学表示法(后缀表示法)详解

    c#数学表示法(后缀表示法)详解

    什么是后缀表达式,查了下原来是一种比较特殊的数学表达式,有三种表达式:前缀表达式、中缀表达式和后缀表达式,下面我们使用示例学习一下
    2014-01-01
  • C# 动画窗体(AnimateWindow)的小例子

    C# 动画窗体(AnimateWindow)的小例子

    C# 动画窗体(AnimateWindow)的小例子,需要的朋友可以参考一下
    2013-03-03
  • C#实现登录窗口(不用隐藏)

    C#实现登录窗口(不用隐藏)

    C#登录窗口的实现,特点就是不用隐藏,感兴趣的朋友不要错过
    2013-11-11
  • C#使用ZXing.Net实现生成二维码和条码

    C#使用ZXing.Net实现生成二维码和条码

    ZXing用Java实现的多种格式的一维二维条码图像处理库,而ZXing.Net是其.Net版本的实现,下面我们就来看看 C#如何使用ZXing.Net实现生成二维码和条码吧
    2023-12-12
  • 基于C#实现Ping工具类

    基于C#实现Ping工具类

    Ping是一种常用的测试网络连接的工具,可以测试网络延迟和连接状况,以及判断网络是否可用,本文将通过框架类库中的Ping类来实现Ping功能,感兴趣的小伙伴可以了解下
    2023-11-11
  • C#自定义画刷原理解析

    C#自定义画刷原理解析

    这篇文章主要为大家详细介绍了C#自定义画刷原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 浅谈C#.NET、JavaScript和JSON

    浅谈C#.NET、JavaScript和JSON

    本文介绍了C#.NET、JavaScript和JSON的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Unity UGUI的Mask遮罩组件使用详解

    Unity UGUI的Mask遮罩组件使用详解

    这篇文章主要为大家介绍了Unity UGUI的Mask遮罩组件使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • C# 如何判断两个文件内容是否相同的方法

    C# 如何判断两个文件内容是否相同的方法

    使用System.security.Cryptography.HashAlgorithm类为每个文件生成一个哈希码,然后比较两个哈希码是否相同
    2013-05-05
  • unity实现鼠标拖住3D物体

    unity实现鼠标拖住3D物体

    这篇文章主要为大家详细介绍了unity实现鼠标拖住3D物体,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07

最新评论