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
    }

  • 相关阅读:
    【设计模式(17)】行为型模式之中介者模式
    服务器迁移--MySQL数据库迁移
    巧妙解决element-ui下拉框选项过多的问题
    关于后台返回的文件流下载方法
    关于input框只让输入数字的写法
    关于element ui 全局配置某些组件的属性方法
    关于echarts的南丁格尔玫瑰图 极值导致展示效果不好的解决方案
    mock数据的使用方法
    配置 git账号和邮箱
    vite 发布了正式版版了 用起来
  • 原文地址:https://www.cnblogs.com/liuweiqiang11188/p/6682607.html
Copyright © 2011-2022 走看看