用户等级显示不同窗体

判断思路:

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层)

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值