限制次数登录(ADO.Net)

本文介绍了一个简单的登录系统中如何通过数据库记录用户的登录错误次数,并在错误次数超过设定阈值时阻止用户继续尝试登录。

在原来数据库上加上次数统计列ErrorTimes


源码记录

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.Data.SqlClient;
namespace 登录厕所里hi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void  incErrorTimes()
        {
            using (SqlConnection conn = new
              SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\MyDb1.mdf;Integrated Security=True;User Instance=True"))
            {
                conn.Open();

                using (SqlCommand updatecmd = conn.CreateCommand())
                {
                    updatecmd.CommandText = "update T_Users Set ErrorTimes+=1 where UserName =@UserName";

                    updatecmd.Parameters.Add(new SqlParameter("UserName", txtUserName.Text));
                    updatecmd.ExecuteNonQuery();
                }
            }

        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (SqlConnection conn = new
               SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\MyDb1.mdf;Integrated Security=True;User Instance=True"))
            {
                conn.Open();

                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from T_Users where UserName=@UserName";
                    cmd.Parameters.Add(new SqlParameter("UserName", txtUserName.Text));
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.Read())
                        {

                            int errorTimes  = reader.GetInt32(reader.GetOrdinal("ErrorTimes"));
                            if(errorTimes >3)
                            {
                                MessageBox.Show("登录次数过多");
                                return ;
                            }
                            string dbpassword =reader.GetString(reader.GetOrdinal("Password"));
                            if(dbpassword==txtPassword.Text)
                            {

                              MessageBox.Show("登录成功");

                            }
                            else 
                            {
                                incErrorTimes();
                                MessageBox.Show("登录失败");
                            }
                        }
                        else
                        {
                            MessageBox.Show("用户名不存在");
                        }
                    }
                }
            }
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值