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)

三層中的最底層-數據訪問層(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 

三層中的橋梁-業務邏輯層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 

三層中的頂層-表現層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層就是實實在在做這件事情的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM