判断思路:
1.判断有无这个用户(根据bool类型的Flag)
2.判断表中Level列中的等级名称(根据表中的数据)
实现思路:
用户等级判断就是一层一层的调用(和登陆的顺序一样),到sqlHelper层中真正实例化和将数据赋值给表,在一层一层返回(用DataTable类接收),到U层判断表中的数据,根据数据不同,显示不同等级的窗体
代码:
U层(PS:Flogin是外观层的实例化的对象名)
if (flag)
{
//隐藏当前窗体
this.Hide();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
//一层一层掉方法,到sqlHelper中真正的实例化,将user传进去,进行判断用户的等级,返回在表中
DataTable level = Flogin.SelectLevel(user);
//查询到的表中的位置的内容=一般用户或其他,将显示内容
if (level.Rows[0][2].ToString().Trim() == "一般用户")
{
//实例化一般用户窗体
FrmNormalMain frmstu = new FrmNormalMain();
//显示实例化的学生界面
frmstu.Show();
}
else if (level.Rows[0][2].ToString().Trim() == "操作员")
{
//实例化操作员窗体
FrmOperatorMain frmopert = new FrmOperatorMain();
//显示操作员窗体
frmopert.Show();
}
else if (level.Rows[0][2].ToString().Trim() == "管理员")
{
//实例化管理员窗体
FrmAdminMain frmadmin = new FrmAdminMain();
//显示管理员窗体
frmadmin.Show();
}
}
else
{
MessageBox.Show("用户名或密码不正确", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
外观层:
public DataTable SelectLevel(LoginEntity.UserInfo Userlevel)
{
//实例化业务逻辑层(B层)
LoginBLL.UserBLL levelBLL = new LoginBLL.UserBLL();
//将等级传入B层,用DataTable接收返回值
DataTable level = levelBLL.LevelBLL(Userlevel);
//返回DataTable level
return level;
}
B层:
public DataTable LevelBLL(LoginEntity.UserInfo userInfo)
{
//实例化工厂
LoginFactory.Factory fact = new LoginFactory.Factory();
//调用工厂方法创建接口,用接口层来接收工厂方法中返回的连接哪个数据库
LoginIDAL.IuserInfoDAL idal = fact.CreatUser();
//接收D层的返回值,根据数据库调用接口的方法
DataTable level = idal.SelectUser(userInfo);
return level;
}
PS:这一层之后就是连接数据库,将数据赋值给DataTable表中(DataTable表实例化在sqlHelper层)