1、 三层结构包含:表示层(USL),业务逻辑层(BLL),数据访问层(DAL)1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。3:表示层:主要表示 WEB 方式,也可以表示成 WINFORM 方式,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。具体的区分方法 1:数据访问层:主要看你的数据层里面有没有
2、包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。三层结构说明 完善的三层结构的要求是:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层.否则你的应用是不是多层结构, 或者说是层结构的划分和组织上是不是有问题就很难说.不同的应用有不同的理解,这是一个概念的问题流程图 部署三层结构 1:新建一空白解决方案2:在此解决方案上添加 新建项目类库 取名 DBEntity(数据库实体)3:在此解决方案上添加 新建项目
3、类库 取名 DAL(数据访问层)4:在次解决方案上添加 新建项目类库 取名 BLL(业务逻辑层)5:在次解决方案上添加 新建网站ASP.NET 网站 取名 WebSite(表示层,WinForm 项目的话添加一 Window 应用程序)6:DAL,BLL, WebSite 分别添加对数据库实体 DBEntity 的引用7:BLL 添加对对 DAL 的引用,WebSite 添加对 BLL 的引用下面用一用户登陆演示项目DBEntity 添加 UserInfo.cs,代表数据库实体,一般是和数据库一一对应的view source print?01 using System; 02 using Sy
4、stem.Collections.Generic; 03 using System.Text; 04 namespace DBEntity 05 06 public class UserInfo 07 08 private int _id; 09 private string _userName; 10 private string _passWord; 11 public int Id 12 13 get return _id; 14 set _id = value; 15 16 public string UserName 17 18 get return _userName; 19 se
5、t _userName = value; 20 21 public string PassWord 22 23 get return _passWord; 24 set _passWord = value; 25 26 27 DAL 里添加 UserDAL.csview source print?01 using System; 02 using System.Data; 03 using System.Data.SqlClient; 04 using System.Configuration; 05 using System.Collections.Generic; 06 using DBE
6、ntity; 07 namespace DAL 08 09 public class UserDAL 10 11private string ConnectionString = ConfigurationManager.AppSettings“ConnectionString“.ToString(); 12 public UserInfo Login(string userName, string passWord) 13 14 UserInfo info = new UserInfo(); 15string strSql = “select id,userName,passWord fro
7、m Users where userName=userName and passWord=passWord“; 16 SqlConnection conn = new SqlConnection(ConnectionString); 17 conn.Open(); 18 SqlCommand com = new SqlCommand(); 19 com.CommandType = CommandType.Text; 20 com.CommandText = strSql; 21 com.Connection = conn; 22 com.Parameters.AddWithValue(“use
8、rName“, userName); 23 com.Parameters.AddWithValue(“passWord“, passWord); 24SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection); 25 if (dr.Read() 26 27 info.Id = Convert.ToInt32(dr“id“); 28 info.UserName = dr“userName“.ToString(); 29 info.PassWord = dr“passWord“.ToString(); 30 retur
9、n info; 31 32 else33 34 return null; 35 36 37 38 BLL 里添加 UserBLL.csview source print?01 using System; 02 using System.Collections.Generic; 03 using System.Text; 04 using DBEntity; 05 using DAL; 06 namespace BLL 07 08 public class UserBLL 09 10 UserDAL dal = new UserDAL(); 11 public UserInfo Login(st
10、ring userName, string passWord) 12 13 return dal.Login(userName, passWord); 14 15 16 Web 里 Login.aspx 对应的后台代码view source print?01 using System; 02 using BLL; 03 using DBEntity; 04 public partial class _Default : System.Web.UI.Page 05 06 protected void Page_Load(object sender, EventArgs e) 07 08 09 p
11、rotected void Button1_Click(object sender, EventArgs e) 10 11 UserBLL data = new UserBLL(); 12 UserInfo info = new UserInfo(); 13 info = data.Login(TextBox1.Text, TextBox2.Text); 14 if (info != null) 15 16 /登陆成功 17 Response.Write(“alert(OK!)“); 18 19 else20 21 /登陆失败 22 Response.Write(“alert(ERROR!)“); 23 24 25 至此,简单的三层架构用户登陆完成了!