1. 程式人生 > >c#基於sqlserver資料庫的三層架構

c#基於sqlserver資料庫的三層架構

我比較菜,大神就不用看了,寫這個是為了做一個學習記錄。

本來佈置的是基於sqlite,還涉及對配置檔案的讀寫,還有基於Base64編碼,讀取sqlite資料庫。上網查了資料對具體的實現方法還是不很清楚,於是就用sqlserver簡單的實現了一下。

談談我自己的理解吧,首先是優點 ,它把一個專案分成了三個大塊(UI,DAL,BLL),讓它們各司其職,某一個地方出現問題,更改自己的那一畝三分地兒就可以了,不會牽扯到其他人,增強了程式碼的重用性,我們知道三層架構設計得到一個實體類Model或者Entity,

•實體類實現所謂的物件關係對映(Object Relational Mapping,簡稱ORM),是為了解決面向物件的類與關係資料庫的表之間,存在的不匹配的現象,通過使用描述物件和關係之間對映的元資料,在程式中的類物件,與關係資料庫的表之間建立持久的關係,用於在程式中描述資料庫表。本質上就是將資料從一種形式轉換到另外一種形式。 我的理解就像java的OOP,把現實中的事物抽象出一個具有某種屬性的物件,在資料庫中有ID,UserName等,在設計物件或者實體的時候也有這種屬性與資料庫中的相對應,然後從資料庫中取出的東西,可以存在這個物件中。 •簡單地說,就是描述一個業務實體的類。 –例如:在登入系統中,每個使用者的資訊作為一行儲存在資料庫的表中,在BLL和UI層如果直接訪問表的某行某列很不方便,但是如果將表中一行的資訊轉換到一個物件中,使用就十分方便,這個物件所屬的類就是實體類。 –實體類物件是現實世界中實體物件在計算機中的表示,在層與層之間以及層內模組間進行資料傳輸。 –實體類可以分為“貧血實體類”和“充血實體類”,前者僅僅儲存實體的屬性,而後者還包含一些實體間的關係與處理邏輯。

這個途中都沒有sqlite!哪位朋友實現了用sqlite並且涉及對配置檔案的讀寫,還有基於Base64編碼,請通知我一聲,感激不盡。

本次實驗遇到的問題:忘記c#中萬用字元怎麼寫了,不過上面那個網址上有,我就不多說了,select查詢的時候,總是出現說1.列名無效,後來發現原來where username=?,?這裡,比如zhangsan,要加單引號,即'zhangsan'。。。希望大家以我為戒。。

2.我是把取到的東西存在了DataTable中,在取裡面具體屬性的值時,要用dt.Row[0]["**"],**位你要取得屬性的名稱,比如dt.Row[0]["username"];