当前位置: 移动技术网 > IT编程>开发语言>.net > WinForm登录验证

WinForm登录验证

2018年12月11日  | 移动技术网IT编程  | 我要评论

成人youxi,裴光德大公无私,网址你懂得

概述:输错三次禁止登陆,15分钟后才能继续。

图示:

form1代码:

using system;
using system.configuration;
using system.data.sqlclient;
using system.windows.forms;

namespace 登录验证项目
{
     public partial class form1 : form
     {
         public form1()
         {
             initializecomponent();
         }

        private void button1_click(object sender, eventargs e)
         {
             //连接数据库
             //将连接字符串写入配置文件中 string connstr = "sever=.;uid=sa;pwd=123456;database=demo";

这部分写在配置文件中

//<connectionstrings>
   // <add name="sqlconn" connectionstring="server=.;uid=sa;pwd=123456;database=loginblock"/>
  //</connectionstrings>


             //条添加引用引入configuration命名空间
             string connstr = configurationmanager.connectionstrings["sqlconn"].connectionstring;
             using (sqlconnection conn = new sqlconnection(connstr))
             {
                 using (sqlcommand cmd = conn.createcommand())
                 {

                    conn.open();
                     //select 查询语句str
                     string str = @"select  [uid]
                                               ,[unm]
                                               ,[pwd]
                                               ,[errordate]
                                               ,[errortimes]
                                           from [login_block]
                                           where unm='" + textbox1.text.trim()
                                           + "' and pwd='" + textbox2.text.trim() + "' ";
                     cmd.commandtext = str;
                     // bool ishasdata=false;

//这里创建login对象


                     login login = null;
                     using (sqldatareader reader = cmd.executereader())
                     {//判断是否有数据
                         #region myregion
                         //if (!reader.hasrows)
                         //{
                         //    //修改错误时间,错误次数

                        //}
                         #endregion
                         #region myregion
                         if (reader.hasrows)
                         {
                             reader.read();
                         }
                         #endregion
                         if (reader.read())
                         {
                             login = new login();
                             login.uid = int.parse(reader["uid"].tostring());
                             login.pwd = reader["pwd"].tostring();
                             login.errortimes = int.parse(reader["errortimes"].tostring());
                             login.errordata = datetime.parse(reader["errordate"].tostring());
                         }
                         // ishasdata = reader.hasrows;


                     }//花括号执行结束之前reader对象一直占用conn对象
                     if (login == null/*!ishasdata*/)
                     {
                         //修改 错误时间,错误次数  where username=txtusername.text
                         cmd.commandtext =
                             "update login_block set errordate=getdate(), errortimes=errortimes+1 where unm='" +
                             textbox1.text.trim() + "'";
                         cmd.executenonquery();
                         //messagebox.show("用户名密码error");
                         return;
                     }
                     //执行有数据的过程
                     if (login.errortimes < 3 || datetime.now.subtract(login.errordata).minutes > 15)
                     {
                         messagebox.show("登录成功!!");
                         cmd.commandtext = "update login_block set errortimes=0,errordate=getdate() where uid=" + login.uid;
                         cmd.executenonquery();
                     }
                     else
                     {
                         messagebox.show("登录失败!账号被锁定");
                     }
                 }
             }
         }
     }
}

login类:

using system;

namespace 登录验证项目
{
     public class login
     {
         //[uid],[pwd],[errortimes],[errordata]
         public int uid { get; set; }
         public string unm { get; set; }
         public string pwd { get; set; }
         public int errortimes { get; set; }
         public datetime errordata { get; set; }
     }
}

数据库:

表:login_block

字段:

[uid]                                       

[unm]                                       

[pwd]                                      

[errordate]                                           

[errortimes]

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网