版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xml1996/article/details/82348629
前言
登录三个权限角色:学生,教师,管理员。登录后,分别显示自己拥有权限的窗体
UI层补充部分
try
{
//实例化Entity类为具体对象user
//把输入的用户名string类型转换成在entity里定义的int类型
//输入的密码就是int类型的,所以不需要
Entity.UserInfo user = new Entity.UserInfo();
user.UserID = Convert.ToInt32(txtUserName.Text.Trim());
user.Password = txtPassWord.Text.Trim();
//定义flag为布尔类型
//实例化 Facade层的LoginFacade类为具体的对象flogin
//具体对象flogin的SelectUser方法的参数user传给布尔类型flag
Boolean flag ;
Facade.LoginFacade Flogin = new Facade.LoginFacade();
flag = Flogin.SelectUser(user);
glbVariables.glbUserName = user.Username;
//user.Username = username;
//flag不等于false登录成功,显示需要的窗体
if (flag!=false )
{
//隐藏窗体
//获取窗体的标识符的返回值OK=1
Hide();
DialogResult = DialogResult.OK;
DataTable table = new DataTable();
table = Flogin.SelectLevel(user);
if (table.Rows[0][2].ToString().Trim()== "学生端")
{
//实例化窗体
frmStudent frmstu = new frmStudent();
//显示实例化的学生界面
frmstu.Show();
}
else if (table.Rows[0][2].ToString().Trim() == "教师端")
{
frmTeacher frmtcher = new frmTeacher();
frmtcher.Show();
}
else
{
frmManager frmmng = new frmManager();
frmmng.Show();
}
}
else
{
MessageBox.Show("验证错误,重新输入");
}
}
catch (Exception ex)
{
MessageBox.Show(ex .Message );
}
}
Facade层补充部分
public DataTable SelectLevel(Entity.UserInfo user)
{
LoginBLL userBLL = new LoginBLL();
DataTable table = userBLL.LevelBLL(user);
return table;
}
BLL补充部分
public DataTable LevelBLL(Entity.UserInfo level)
{
Factory.LoginFactory fact = new Factory.LoginFactory();
IDAL.ILoginIDAL idal = fact.CreateUser();
DataTable table = idal.selectUser(level);
return table;
}
错误分析
错误:在判断时候总是不能够判断出事什么level,无论什么用户名都只登录管理员端
错误原因:没有消除空格trim()导致,不可以进去if循环。修改为if (table.Rows[0][2].ToString().Trim()== “学生端”)