• 步步为营-41-登录失败3次,15分钟后才能登录


    说明:登录失败3次,15分钟后才能登录

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace UeerLogin
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnLogin_Click(object sender, EventArgs e)
            {
                //操作数据库
                string id = txtUserName.Text.Trim();
                string pwd = txtPwd.Text.Trim();
                string strSQL = "select Id, Name, Pwd, Phone, Email, ErrorTimes, LastErrorTime,DATEDIFF(minute,LastErrorTime,getdate()) as ErrorMinute from UserInfo where Id =" + id;
                if (GetUserInfo(strSQL))
                {
                    if (user.ErrorTimes>=3&&user.ErrorMinute<15 )
                    {
                        MessageBox.Show("登录失败!用户被锁");
                        return;
                    }
                    if (pwd.Trim() == user.Pwd.Trim())
                    {
                        //执行更新操作---ErrorTimes=0
                        strSQL = "Update UserInfo set ErrorTimes=0 where Id =" + id;
                        UpdateUserInfo(strSQL);
                        MessageBox.Show("登录成功");
                    }
                    else
                    {
                        //执行更新操作---ErrorTime+1,LastErrorTime
                        user.ErrorTimes = user.ErrorTimes + 1;
                        strSQL = string.Format("Update UserInfo set ErrorTimes= {0},LastErrorTime='{1}' where Id ={2}", user.ErrorTimes,DateTime.Now, user.Id);
    //                    strSQL = string.Format("Update UserInfo set ErrorTimes= {0},LastErrorTime={1}", user.ErrorTimes, DateTime.Now);
                        UpdateUserInfo(strSQL);
                        MessageBox.Show("登录失败!用户密码错误.错误次数"+user.ErrorTimes);
                    }
                }
                else
                {
                    MessageBox.Show("登录失败!用户不存在");
                }
            }
    
            public UserInfo user = new UserInfo();
            public bool GetUserInfo(string  strSQL)
            {
                //创建连接字符串
                string connstr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
                //连接数据库
                using (SqlConnection conn = new SqlConnection(connstr))
                {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(strSQL,conn))
                    {
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            if (reader.Read())
                            {
                                user.Id = Convert.ToInt32(reader["Id"].ToString());
                                user.Pwd = reader["Pwd"].ToString();
                                //数据库中设置不能为空,默认值为0,不然转换会出错
                                user.ErrorTimes =Convert.ToInt32(reader["ErrorTimes"].ToString());
                                user.ErrorMinute =Convert.ToInt32(reader["ErrorMinute"].ToString());
                                return true;
                            }
                        }
                           
                        }
                    }
                return false;
                }
    
            public bool UpdateUserInfo(string strSQL)
            {
                //创建连接字符串
                string connstr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
                //连接数据库
                using (SqlConnection conn = new SqlConnection(connstr))
                {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(strSQL, conn))
                    {
                        if (cmd.ExecuteNonQuery()>0)
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
                
            }
        }
    View Code

    注:参数格式化

    cmd.CommandText=@"select count(*)  from UserInfo where UserName = @UserName and UserPwd = @UserPwd";

    cmd.Parameters.Add("@UserName",txtUserName.Text);

    cmd.Parameters.AddWithValue("@demo",0);

  • 相关阅读:
    2018QBXT刷题游记(4)
    洛谷 P4302 字符串折叠 题解
    hdu5009 Paint Pearls 题解
    CF467C George and Job 题解
    洛谷P2622 关灯问题II 题解
    洛谷 P3049园林绿化 题解
    洛谷 P1064 金明的预算方案 题解
    洛谷P1979 华容道 题解
    2018QBXT刷题游记(3)
    2018QBXT刷题游记(2)
  • 原文地址:https://www.cnblogs.com/YK2012/p/6775035.html
Copyright © 2020-2023  润新知