黑马程序员_学习三层架构开发

学习三层架构开发
1.三层架构开发模式大体分 数据访问层(DAL)、业务逻辑层(BLL)、表示层(UI)这三层,但并不局限是这三层,可以按需要添加其他层的。
2.数据访问层是和数据库打交道的,直接对数据库进行数据操作。表示层是呈现给用户看的界面。业务逻辑层是数据访问层和表示层之间的桥梁,处理一些验证之类。
3.三层模式实现登录:
3.1首先搭建好三层最初的框架:RechargeSys.DAL、RechargeSys.BLL、RechargeSys.Models、RechargeSys.Web,其中的RechargeSys.Models是实体层。
3.2在RechargeSys.DAL中写一个AgentLogin登录方法
        /// <summary>
        /// 管理员登录
        /// </summary>
        /// <param name="AdminCode"></param>
        /// <param name="AdminPwd"></param>
        /// <param name="Company"></param>
        public void AdminLogin(string AdminCode,string AdminPwd,out Company Company)
        {
            Company company = null;
            string sql="select * from Company where Name=@Name and Password=@Password";
            using (SqlConnection conn = new SqlConnection("Data Source=WANG-PC;Initial Catalog=PhoneRechargeSys;User ID=sa;Password=123"))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Parameters.Add(new SqlParameter("Name", AdminCode));
                cmd.Parameters.Add(new SqlParameter("Password", AdminPwd));
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    company = new Company()
                    {
                        Account = dr["Account"].ToString(),
                        Password = dr["Password"].ToString()
                    };
                }
            }
            Company = company;
        }
3.3在RechargeSys.BLL中写业务逻辑,调用RechargeSys.DAL中的登录方法并传递参数
        /// <summary>
        /// 管理员登录
        /// </summary>
        /// <param name="AdminCode"></param>
        /// <param name="AdminPwd"></param>
        /// <param name="Company"></param>
        public void AdminLogin(string AdminCode,string AdminPwd,out Company Company)
        {
            RechargeSys.DAL.CompanyService DALAdminService = new DAL.CompanyService();
            DALAdminService.AdminLogin(AdminCode, AdminPwd, out Company);
        }
3.4在RechargeSys.Web中调用RechargeSys.BLL中的AdminLogin方法并传参
        /// <summary>
        /// 管理员登录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnLogin_Click(object sender, EventArgs e)
        {          
            Company company;
            string Account=this.txtAdminCode.Text.Trim();
            string Password=this.txtPWD.Text.Trim();
            RechargeSys.BLL.CompanyManager AdminManager = new CompanyManager();
            AdminManager.AdminLogin(Account,Password,out company);
            if (company != null && Account == company.Account && Password == company.Password)
            {
                Session["adminuser"] = company;
                this.lbMsg.Text = "登录成功!";
                Response.Redirect("AdminIndex.aspx");
            }
            else
            {
                this.lbMsg.Text = "帐号或密码错误!";
            }
        }

 

 

posted @ 2013-04-16 19:25  微笑的小鸟  阅读(229)  评论(0编辑  收藏  举报