前些陣子照著《Pro ASP.NET 2.0 E-Commerce in C#2005》書編輯了一個商務系統網站,想總結一下學習到的所學的知識。
該網站具有一般商務網站的特徵
這裡先講講他的架構
資料訪問層
用的的預存程序操作資料庫的儲存,有一個Shop.DataAccess類庫專門(注意我這裡將原文的命名空間改為shop了)
該類庫使用了一個組件來封裝對資料庫的操作 為 Microsoft Data Access Application Block, 其實就是將SQLHelper.cs複製到該類下就行了,該類可以自動管理預存程序的串連,參數和名稱。
類庫下的DataAccessBase類是一個基類,該類庫幾乎所有的類都會繼承它,有兩個屬性一個是預存程序,以及返回資料庫的連接字串
注意:這裡是從web.config檔案中擷取與資料庫連接的字串,但是在類中無法引用到Configuration類,所以我們要額外的添加引用System.Configuration.dll程式集
以下為引用的內容: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration;
namespace Shop.DataAccess { public class DataAccessBase { //預存程序的名稱 protected string StoredprocedureName { set; get; }
//獲得連接字串 protected string ConnectionString { get { return ConfigurationManager.ConnectionStrings["db_shopConnectionString"].ToString(); } } }
} |
類庫中的StoreProcedure類
利用枚舉儲存編寫的預存程序名稱,這樣便於更改及管理
但是對於預存程序很多,一個類來儲存肯定顯得不夠,個人建議在細分,控制一個類中的預存程序不超過20個
例如:
StoreProcedure_User,StoreProcedure_Product,StoreProcedure_Orders
以下為引用的內容: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace Shop.DataAccess { public class StoredProcedure { public enum Name { ProductByID_Select, Products_Select, Products_SelectSerach, ShoppingCart_Select, ShoppingCart_Insert, ShoppingCart_Update, ShoppingCart_Delete, EndUser_Insert, EndUserLogin_Select, Address_Select, ContactInformation_Select, AdminLogin_Select, Product_Insert, ProductCategory_Select, Product_Update, Orders_Select, OrderDetails_Select, OrderAll_Select, OrderStatus_Select, OrdersByID_Select, Orders_Update, ProductPromotion_Select } } } |