1.CaterUI层
private void btnLogin_Click(object sender, EventArgs e)
{
//获取用户输入的信息
string name = txtName.Text;
string pwd = txtPwd.Text;
//调用业务逻辑层查询用户名密码是否正确
ManagerInfoBll mibll = new ManagerInfoBll();
// 获得登录成功的用户级别信息
int type = -1;
// 开始登录验证
LoginState loginState = mibll.Login(name, pwd, out type);
switch (loginState)
{
//登录成功就打开一个新的窗体
case LoginState.OK:
FormMain fm = new FormMain();
// 在这里通过使用tag属性吧这个值传递过去给我的餐饮管理主窗体(员工级别信息)
fm.Tag = type;
//显示登录成功后的主窗体
fm.Show();
//将当前的窗体隐藏起来(因为这个窗体是一个主窗体, 我们不能直接关闭掉)
this.Hide();
break;
case LoginState.NameError:
MessageBox.Show("该用户不存在", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
case LoginState.PwdError:
MessageBox.Show("密码错误", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
}
2.CaterBll层
// 调用Dal层, 实现用户的登录
///
///
///
///
///
/// 返回用户的登录级别信息
///
public LoginState Login(string name, string pwd, out int type)
{
// 设置type的默认值, 如果为此值的时候, 就不会使用
type = -1;
//根据用户名进行对象的查询
ManagerInfo mi = miDal.getManagerByName(name);
if (mi == null)
{
//用户名错误
return LoginState.NameError;
}
else
{
//用户名正确
//由于这里查询出来的是一个MD5加密后的结果, 因此我需要提前把我的这个密码进行MD5加密后再比较是否相同
string md5_pwd = Md5Helper.EncryptString(pwd);
//两个都加密了的密码进行比较
if (mi.MPwd.Equals(md5_pwd))
{
type = mi.MType;
//密码正确
return LoginState.OK;
}
else
{
//密码错误
return LoginState.PwdError;
}
}
}
3.主窗体之间进行传值
private void FormMain_Load(object sender, EventArgs e)
{
// 当登录成功后, 判断登录进来的员工级别, 以确定是否显示menuManager图标
int type = Convert.ToInt32(this.Tag);
if (type == 1)
{
//经理(默认已经是要显示出来的)
}
else{
// 店员(管理员的菜单不需要显示出来)
this.menuManagerInfo.Visible = false;
}
}
评论
填写昵称与邮箱即可评论,无需登录。