登录

在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
}

原文地址:https://www.cnblogs.com/liuweiqiang11188/p/6682607.html