首页 > 编程 > C# > 正文

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

2020-01-24 02:31:58
字体:
来源:转载
供稿:网友

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

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

using System; using System.Collections.Generic; using System.Linq; using System.Text;  namespace model {   public class User   {     public User() { }     private string _name;     public string name     {       set { _name = value; }       get { return _name; }     }    } }

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

<add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456" providerName="System.Data.SqlClient" /> 
 

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

using System; using System.Collections.Generic; using System.Linq; using System.Text; using model; using System.Data; using System.Configuration; using System.Data.SqlClient;  namespace DAL {   public class UserDB   {     public bool User_add(model.User model)      {        string setting = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();        SqlConnection myconn=new SqlConnection(setting);        myconn.Open();        SqlCommand cmd=new SqlCommand("insert into dbo.[user]([name]) values(@name)",myconn);        cmd.Parameters.AddWithValue("@name", model.name);        if (cmd.ExecuteNonQuery()>0)        {          return true;        }        else        {          return false;        }      }   } }

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

using System; using System.Collections.Generic; using System.Linq; using System.Text; using DAL;  namespace BLL {        public class userBLL      {       DAL.UserDB db = new UserDB();       public bool addUser(model.User model)        {         return db.User_add(model);        }      }   }

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

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using BLL; using model;  namespace 登陆 {   public partial class Form1 : Form   {     public Form1()     {       InitializeComponent();     }      private void button1_Click(object sender, EventArgs e)     {       model.User thisUser = new User();        thisUser.name = TB_username.Text.ToString();        BLL.userBLL uB = new userBLL();        if (uB.addUser (thisUser))        {         MessageBox.Show ("true");        }        else                                  {          MessageBox.Show ("false");        }      }     }   }

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

解释:

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表