机房重构之七层登陆

先上一张图,七层相对于三层来说,运用了设计模式,增加了接口。

代码:

实体层:

public class UserInfo
    {
        public string  ID { get; set; }

        public string UserName { get; set; }

        public string  PassWord { get; set; }

        public string Level { get; set; }

        public string Head { get; set; }
    }




IDAL层:

public interface  LoginIDAL
    {
        DataTable selectUser(UserInfo UserInfo);
    }


DAL层:

        public DataTable selectUser(Entity.UserInfo UserInfo)
        {
            CommandType Text = 0;
            sqlHelper sqlhelper = new sqlHelper();

            SqlParameter[] sqlParameter = { new SqlParameter("@UserName", UserInfo.UserName),
                new SqlParameter("@PassWord", UserInfo.PassWord) };


            string sql = @"SELECT * FROM [User_Info] WHERE UserName = @UserName and PassWord = @PassWord";

            DataTable table = sqlhelper.ExecuteReader(sql, Text, sqlParameter);

            return table;
        }


Factory层:

public class LoginFactory
    {

        public static readonly string db = ConfigurationManager.AppSettings["DB"];
        public static readonly string AssemblyName = "DAL";
        public LoginIDAL CreateUser()
        {

            string ClassName = AssemblyName + "." + db + "LoginDAL";
            return (LoginIDAL)Assembly.Load(AssemblyName).CreateInstance(ClassName);

        }


    }



BLL层:

public bool UserBLL(Entity.UserInfo UserInfo)
        {
            //实例化工厂
            Factory.LoginFactory factory = new Factory.LoginFactory();
            //调用工厂方法创建工厂   接口
            IDAL.LoginIDAL idal = factory.CreateUser();
            //接受D层返回值
            DataTable table = idal.selectUser(UserInfo);
            bool flag;
            //返回DataTable类型,行数等于0
            if (table.Rows.Count == 0)
            {
                flag = false;
            }
            else
            {
                flag = true;
            }
            return flag;
         }



Facade层:

public Boolean SelectUser(Entity.UserInfo user)
        {
            bool flag;
            BLL.LoginBLL userBLL = new BLL.LoginBLL();
            flag = userBLL.UserBLL(user);
            return flag;
            
        }


UI层:

public partial class FormLogin : Form
    {
        public static string[] userin = new string[5];
        public static string UserName;
        public FormLogin()
        {
            InitializeComponent();
        }


        private void FormLogin_Load(object sender, EventArgs e)
        {

        }


        private void btOK_Click(object sender, EventArgs e)
        {
            //判断输入是否为空

            
            //如果没有用户名 or 密码

            if (txtUserName .Text.Trim () == string.Empty || txtPassWord .Text.Trim () == string.Empty)
            {
                MessageBox.Show("请完善用户或者密码信息", "温馨提示");
                return;
            }
          
           //输入内容与数据库相连
            Facade.LoginFacade loginFacade = new Facade.LoginFacade();
            Entity.UserInfo user = new Entity.UserInfo();
            UserName = txtUserName.Text.Trim();
            user.UserName = txtUserName.Text.Trim();
            user.PassWord = txtPassWord.Text;


            Boolean flag = false;
            flag = loginFacade.SelectUser(user);
            if (flag != false )
            {
                Main main = new Main();
                main.Show();
                Facade.LoginFacade jfLogin = new Facade.LoginFacade();
                flag = jfLogin.SelectUser(user);
                
            }
            else
            {
                MessageBox.Show("用户名或密码错误,请重新输入","提示");
                txtUserName.Focus();

            }

        }
    }





        
        
        }


    }

















评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值