黑马程序员_学习三层架构开发
学习三层架构开发
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 = "帐号或密码错误!";
}
}