三层架构是一种管理项目的方法,通过将程序中的代码分类管理来使程序结构更加清晰。通常将整个业务应用划分为三个层,从下至上依次为:数据访问层,业务逻辑层,表现层
1.三层架构基本概念和作用
三层架构就是在项目开发过程中根据代码的不同功能,分别对代码进行存储与调用。
①表现层(UI层);主要用于存放与用户交互的展示页面
②业务逻辑层(BLL层):主要用于存放针对具体问题对数据进行逻辑处理的代码
③数据访问层(DAL层):主要用于存放对原始数据进行操作的代码,它封装了所有与数据库交互的操作,并为业务逻辑层提供数据服务。
三层架构耦合度降低,可维护性和可扩展性增高,降低系统的性能
以下是根据ADO.NET以及简单的WebForm窗体实现登录功能:
用户名和密码验证的代码放在业务逻辑层,登录界面放在表现层,读取数据库中的用户名和密码的代码放在数据访问层。
1.创建数据库
在itcast中创建名为UserLogin的用户登录表。
该表包括主键自动增长ID列,用户名UserName列(not null)和密码pwd列(not null)
create database itcase
go
create table UserLogin(
ID int IDENTITY(1,1) not null Primary Key,
[Name][varchar](32) not null,
[Pwd][varchar](8) not null
)
insert into UserLogin values('admin','123')
select * from UserLogin
2.创建新的解决方案,在这个解决方案中添加DAL数据访问层,BLL业务逻辑层,Model类
创建表现层UI,也就是ASP.NET Web应用程序
在实际开发中往往需要大量的数据需要处理,通常会在项目中创建一个数据库实体模型层Model
3.实现数据访问层功能
通常数据访问层用于获取数据库中的数据,需要使用数据表的实体模型,在Model类库中添加一个“UserLogin.cs”类文件,该文件与数据库中“UserLogin”登陆表中的字段相对应
①Model类库中的UserLogin.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Model
{
public class UserLogin
{
public int ID { get; set; }
public string Name { get; set; }
public string Pwd { get; set; }
}
}
②DAL类库中的SqlHelper.cs
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Configuration;
namespace DAL
{
public class SqlHelper
{//在引用里添加System.Configuration引用集,数据集
private static string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
public static int ExcuteNonQuery(string sql, params SqlParameter[] pms)
{
int count = 0;
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand c