zl程序教程

您现在的位置是:首页 >  后端

当前栏目

基于C#实现的三层架构实例

c#实例架构 实现 基于 三层
2023-06-13 09:15:42 时间

本文所述为基于C#实现的三层架构。对于三层的概念查相信大家并不陌生,这里举一个关于三层的简单实例,真正看一下它是如何具体实现的.

我们先来一起看看实体类-Model
实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段!

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;

namespacemodel
{
publicclassUser
{
publicUser(){}
privatestring_name;
publicstringname
{
set{_name=value;}
get{return_name;}
}

}
}

再来说明一下,这个实例应用了配置文件来访问数据库,当然我们在做的时候可以使用SqlHelper,也可以将连接数据库的这些代码直接放在D层

<addname="ConnectionString"connectionString="DataSource=localhost;InitialCatalog=tester;UserID=sa;Password=123456"providerName="System.Data.SqlClient"/>

三层中的最底层-数据访问层(DAL) 这一层要引用实体类和对Configuration的引用
实质:就是对数据库中的内容的增,删,改,查

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingmodel;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Data.SqlClient;

namespaceDAL
{
publicclassUserDB
{
publicboolUser_add(model.Usermodel)
{
stringsetting=ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
SqlConnectionmyconn=newSqlConnection(setting);
myconn.Open();
SqlCommandcmd=newSqlCommand("insertintodbo.[user]([name])values(@name)",myconn);
cmd.Parameters.AddWithValue("@name",model.name);
if(cmd.ExecuteNonQuery()>0)
{
returntrue;
}
else
{
returnfalse;
}
}
}
}

三层中的桥梁-业务逻辑层BLL 这一层需要引用实体类和数据访问层
实质:负责处理U层的问题(本例子主要是对数据层的操作)

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingDAL;

namespaceBLL
{
publicclassuserBLL
{
DAL.UserDBdb=newUserDB();
publicbooladdUser(model.Usermodel)
{
returndb.User_add(model);
}
}
}

三层中的顶层-表现层UI 这一层要引用实体类和业务逻辑层
实质:具体解决做什么的问题

usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingBLL;
usingmodel;

namespace登陆
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}

privatevoidbutton1_Click(objectsender,EventArgse)
{
model.UserthisUser=newUser();
thisUser.name=TB_username.Text.ToString();
BLL.userBLLuB=newuserBLL();
if(uB.addUser(thisUser))
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
}
}
}
}

三层之间的关系如下图所示:

解释:

上述代码中DAL主要是对数据库中的内容的操作,在这里就是向数据库中添加用户。BLL则主要是调用DAL层的操作,返回DAL层添加用户的结果(true或者false)。这样也就是在客户端与数据库中加了一个中间层,使得两层的依赖性减小。UI层则主要完成响应用户的需求,去调用BLL层实现的adduser方法,DAL层就是实实在在做这件事情的操作。