zoukankan      html  css  js  c++  java
  • 登录

    在dall层

     1  /// <summary>
     2         /// 根据用户名查找对象
     3         /// </summary>
     4         /// <param name="name"></param>
     5         /// <returns></returns>
     6         public ManagerInfo GetByName(string name)
     7         {
     8             //定义一个对象
     9             ManagerInfo mi = null;
    10             //构造语句
    11             string sql = "select * from managerInfo where mname=@name";
    12             //为语句构造参数
    13             SQLiteParameter p=new SQLiteParameter("@name",name);
    14             //执行查询得到结果
    15             DataTable dt = SqliteHelper.GetDataTable(sql, p);
    16             //判断是否根据用户名查找到了对象
    17             if (dt.Rows.Count > 0)
    18             {
    19                 //用户名是存在的
    20                 mi=new ManagerInfo()
    21                 {
    22                     MId = Convert.ToInt32(dt.Rows[0][0]),
    23                     MName = name,
    24                     MPwd = dt.Rows[0][2].ToString(),
    25                     MType =Convert.ToInt32( dt.Rows[0][3])
    26                 };
    27             }
    28             else
    29             {
    30                 //用户名不存在
    31             }
    32             return mi;
    33         }

    在到Bll层增加登录的逻辑

     1  public LoginState Login(string name,string pwd,out int type)
     2         {
     3             //设置type默认值,如果为此值时,不会使用
     4             type = -1;
     5             //根据用户名进行对象的查询
     6             ManagerInfo mi = miDal.GetByName(name);
     7             if (mi == null)
     8             {
     9                 //用户名错
    10                 return LoginState.NameError;
    11             }
    12             else
    13             {
    14                 //用户名正确
    15                 if (mi.MPwd.Equals(Md5Helper.EncryptString(pwd)))
    16                 {
    17                     //密码正确
    18                     //登录成功
    19                     type = mi.MType;
    20                     return LoginState.Ok;
    21                 }
    22                 else
    23                 {
    24                     //密码错误
    25                     return LoginState.PwdError;
    26                 }
    27             }
    28         }

    在UI层代码

     1  private void btnLogin_Click(object sender, EventArgs e)
     2         {
     3             //获取用户输入的信息
     4             string name = txtName.Text;
     5             string pwd = txtPwd.Text;
     6             //调用代码
     7             int type;
     8             ManagerInfoBll miBll=new ManagerInfoBll();
     9             LoginState loginState = miBll.Login(name, pwd,out type);
    10             switch (loginState)
    11             {
    12                 case LoginState.Ok:
    13                     FormMain main=new FormMain();
    14                     main.Tag = type;//将员工级别传递过去
    15                     main.Show();
    16                     //将登录窗体隐藏
    17                     this.Hide();
    18                     break;
    19                 case LoginState.NameError:
    20                     MessageBox.Show("用户名错误");
    21                     break;
    22                 case LoginState.PwdError:
    23                     MessageBox.Show("密码错误");
    24                     break;
    25 
    26             }
    27         }

    其中最后在Model 设置一个登录状态

    public enum LoginState
    {
    Ok,
    NameError,
    PwdError
    }

  • 相关阅读:
    【TYVJ1728】【洛谷P3369】—普通平衡树(Splay写法)
    【BZOJ2388】—旅行规划(分块+凸包)
    【BZOJ3674】—可持久化并查集加强版(可持久化并查集)
    【模板】树链剖分+换根
    【CQOI2007】【BZOJ1257】【洛谷P2261】余数求和(整除分块)
    Old Driver Tree(ODT 老驱动树)
    【CodeForces-896C】— Willem, Chtholly and Seniorious(ODT老驱动树)
    【BZOJ2238】—MST(树链剖分+最小生成树)
    13.PHP_ThinkPHP
    Win64 驱动内核编程-33.枚举与删除对象回调
  • 原文地址:https://www.cnblogs.com/liuweiqiang11188/p/6682607.html
Copyright © 2011-2022 走看看