C#三层架构实例

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

  } 
}

实体类-Model

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

实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段!

<add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456" providerName="System.Data.SqlClient" /> 
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; }  
        }  

    }  
}  

 

 

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

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

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; 
       } 
     } 
  } 
}
<add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />  

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

 数据访问层(DAL)

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); 
       } 
     }   
}

三层中的最底层-数据访问层(DAL)
 这一层要引用实体类和对Configuration的引用

三层中的顶层-表现层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"); 
       } 
     } 
    } 
  }
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 

相关文章