基于C#實(shí)現(xiàn)的三層架構(gòu)實(shí)例
本文所述為基于C#實(shí)現(xiàn)的三層架構(gòu)。對(duì)于三層的概念查相信大家并不陌生,這里舉一個(gè)關(guān)于三層的簡(jiǎn)單實(shí)例,真正看一下它是如何具體實(shí)現(xiàn)的.
我們先來(lái)一起看看實(shí)體類(lèi)-Model
實(shí)質(zhì):實(shí)體類(lèi)就是在完成數(shù)據(jù)庫(kù)與實(shí)體類(lèi)對(duì)應(yīng)的功能,一個(gè)類(lèi)是一張表,一個(gè)屬性是一個(gè)字段!
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; } } } }
再來(lái)說(shuō)明一下,這個(gè)實(shí)例應(yīng)用了配置文件來(lái)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),當(dāng)然我們?cè)谧龅臅r(shí)候可以使用SqlHelper,也可以將連接數(shù)據(jù)庫(kù)的這些代碼直接放在D層
<add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />
三層中的最底層-數(shù)據(jù)訪(fǎng)問(wèn)層(DAL) 這一層要引用實(shí)體類(lèi)和對(duì)Configuration的引用
實(shí)質(zhì):就是對(duì)數(shù)據(jù)庫(kù)中的內(nèi)容的增,刪,改,查
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; } } } }
三層中的橋梁-業(yè)務(wù)邏輯層BLL 這一層需要引用實(shí)體類(lèi)和數(shù)據(jù)訪(fǎng)問(wèn)層
實(shí)質(zhì):負(fù)責(zé)處理U層的問(wèn)題(本例子主要是對(duì)數(shù)據(jù)層的操作)
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); } } }
三層中的頂層-表現(xiàn)層UI 這一層要引用實(shí)體類(lèi)和業(yè)務(wù)邏輯層
實(shí)質(zhì):具體解決做什么的問(wèn)題
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"); } } } }
三層之間的關(guān)系如下圖所示:
解釋?zhuān)?/p>
上述代碼中DAL主要是對(duì)數(shù)據(jù)庫(kù)中的內(nèi)容的操作,在這里就是向數(shù)據(jù)庫(kù)中添加用戶(hù)。BLL則主要是調(diào)用DAL層的操作,返回DAL層添加用戶(hù)的結(jié)果(true或者false)。這樣也就是在客戶(hù)端與數(shù)據(jù)庫(kù)中加了一個(gè)中間層,使得兩層的依賴(lài)性減小。UI層則主要完成響應(yīng)用戶(hù)的需求,去調(diào)用BLL層實(shí)現(xiàn)的adduser方法,DAL層就是實(shí)實(shí)在在做這件事情的操作。
相關(guān)文章
WPF利用WindowChrome實(shí)現(xiàn)自定義窗口
這篇文章主要為大家詳細(xì)介紹了WPF如何利用WindowChrome實(shí)現(xiàn)自定義窗口,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-02-02C# 參考之訪(fǎng)問(wèn)關(guān)鍵字:base、this
由于靜態(tài)成員函數(shù)存在于類(lèi)一級(jí),并且不是對(duì)象的一部分,因此沒(méi)有 this 指針。在靜態(tài)方法中引用 this 是錯(cuò)誤的。 索引器允許類(lèi)或結(jié)構(gòu)的實(shí)例按照與數(shù)組相同的方式進(jìn)行索引。索引器類(lèi)似于屬性,不同之處在于它們的訪(fǎng)問(wèn)器采用參數(shù)。2008-03-03Unity實(shí)現(xiàn)汽車(chē)前后輪倒車(chē)軌跡計(jì)算
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)汽車(chē)前后輪倒車(chē)軌跡計(jì)算,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09DevExpress設(shè)置餅狀圖的Lable位置實(shí)例
這篇文章主要介紹了DevExpress設(shè)置餅狀圖的Lable位置的方法,以實(shí)例形式詳細(xì)講述了設(shè)置餅狀圖的Lable位置具體實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2014-10-10C#彈出對(duì)話(huà)框確定或者取消執(zhí)行相應(yīng)操作的實(shí)例代碼
這篇文章主要介紹了C#彈出對(duì)話(huà)框確定或者取消執(zhí)行相應(yīng)操作的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12深入多線(xiàn)程之:內(nèi)存柵欄與volatile關(guān)鍵字的使用分析
本篇文章對(duì)內(nèi)存柵欄與volatile關(guān)鍵字的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05將DataTable轉(zhuǎn)換成List<T>實(shí)現(xiàn)思路及示例代碼
首先,這是我寫(xiě)的一個(gè)通用轉(zhuǎn)換類(lèi),完成此類(lèi)操作。也是實(shí)現(xiàn)這個(gè)功能最核心的部分。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11