程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 三層架構實例

三層架構實例

編輯:C#入門知識

對於三層的概念查也查了,看也看了,下面是我找的一個關於三層的簡單實例,真正看一下它是如何具體實現的.   我們先來一起看看實體類-Model 實質:實體類就是在完成數據庫與實體類對應的功能,一個類是一張表,一個屬性是一個字段! [csharp]  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層 [csharp]  <add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456"              providerName="System.Data.SqlClient" />     三層中的最底層-數據訪問層(DAL)  這一層要引用實體類和對Configuration的引用 實質:就是對數據庫中的內容的增,刪,改,查 [csharp]   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層的問題(本例子主要是對數據層的操作) [csharp]   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  這一層要引用實體類和業務邏輯層 實質:具體解決做什麼的問題 [csharp]   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層就是實實在在做這件事情的操作。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved