欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-17 17:19:46
本文所述为基于c#实现的三层架构。对于三层的概念查相信大家并不陌生,这里举一个关于三层的简单实例,真正看一下它是如何具体实现的. 我们先来一起看看实体类-model 实...

本文所述为基于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"); 
       } 
     } 
    } 
  }

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

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

解释:

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

上一篇:

下一篇: