天天看點

.NET 三層架構

三層架構簡介:

  三層架構(3-tier architecture) 通常意義上的三層架構就是将整個業務應用劃分為:界面層(User Interface layer)、業務邏輯層(Business Logic Layer)、資料通路層(Data access layer)。區分層次的目的即為了“高内聚低耦合”的思想。在軟體體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分為三層,從下至上分别為:資料通路層、業務邏輯層(又或稱為領域層)、表示層。

步驟如下:

1.建立一個空白解決方案,起好結局方案名稱.

2.右擊解決方案,選擇C#語言 ==> 類庫 ,起好類庫名稱. 比如:BookShop.MODEL(資料互動層).

3.重複第二步,依次建出DLL層,BAL層. 比如:BookShop.BLL(業務邏輯層),BookShop.DAL(資料通路層).

4.右擊解決方案,選擇C#語言 ==> Windows 窗體應用程式. 比如:BookShop.UI(表示層).

5.依次删除BLL,DAL,MODEL層中的Class1,然後右鍵 ==> 添加 ==> 建立項 ==> 類,并将其命名.(删除後添加是為了按照一定的命名規則調用,不會使自己誤用Class1).

BLL層以Manager結尾(例:UserManager),DAL層以Service結尾(例:UserService),MODEL層的名與資料庫中的表名一緻(例:Users).

6.添加引用,UI層引用 BLL MODEL , BLL層引用 DAL MODEL , DAL層引用 MODEL , 都是向下引用的.

7.在DAL層建立個SqlHelper類,用于連接配接資料庫使用的.

8.MODEL層主要負責參數的取值和指派,參數應該和資料庫表中的列對應起來.

public string UserId { get; set; }      ==       private string UserId;

       							 public string id

       							 {
           						     get{ return ID; }
           						     set{ ID = value;}
      							 }      

9.想實作兩個類互相調用需要三點:添加引用,聲明命名空間,public修飾.

10.寫代碼首先從DAL層,BLL層,UI層依次寫入.(建議)

11.一些ADO.NET對象介紹

Connection : 用于連接配接資料庫指令.

	Command :  執行針對資料庫的SQL指令.

	ExecuteScalar() : 傳回第一行第一列的值(object類型).

	ExecuteNonQuery() : 傳回執行指令後受到影響的行數(int類型).

	ExecuteReader() : 傳回結果集的SQL語句、存儲過程,并存放在DataReader類型的對象.

	DataReader :  不能寫入,并且隻能從頭至尾往下讀,逐行讀取的特性.
		
		     SqlDataReader reader = cmd.ExecuteReader();

		     while(reader.Read()) ==>所有的資料放到reader裡

		     {

			  listBox1.Items.Add(reader.GetValue(0));

		     }

	DataAdapter :  直接顯示表格可以考慮使用!

		      DataSet ds = new DataSet();

                     DataTable dt = new DataTable();

		     SqlDataAdapter adpt = new SqlDataAdapter(cmd);

                     adpt.Fill(ds);

               	     dt = ds.Tables[0];

	DataSet : 表的集合.

		 DataSet ds = new DataSet();

	DataTable : 單個表.

		 DataTable dt = ds.Tables[0];  ==>取DataSet中的第一個表;

	DataRow : 取單行.

		 DataRow dr = dt.Rows[0];   ==> 取dt表中的第一行記錄;

	SqlParameter : 可了解為是個數組,數組的元素起占位符作用.

		 string sql = "select * from users where loginId=@loginId and LoginPwd=@pass";

                 SqlParameter[] pars = new SqlParameter[2];	==> 定義兩個數組長度
     
	         pars[0] = new SqlParameter("@loginId", loginId);	==> 第一個元素
          
	         pars[1] = new SqlParameter("@pass", password);
           	
		 DataTable dt= SqlHelper.ExecuteDataTable(sql, CommandType.Text, pars);	==>  把參數傳到SqlHelper類ExecuteDataTable的方法