国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET開發,從二層至三層,至面向對象 (3)

2019-11-17 01:37:33
字體:
來源:轉載
供稿:網友

asp.net開發,從二層至三層,至面向對象 (3)

繼續上一篇《ASP.NET開發,從二層至三層,至面向對象 (2)》http://m.survivalescaperooms.com/insus/p/3825805.html。我們學會了怎樣創建對象,把BizBase類從頁面級分離,解耦合度。親的更親,疏的更疏。上面使用的是access數據,將達不到擴展與升級的要求。程序在發展的同時,有可能會轉向SQL數據庫,或是有些模塊外包。在這情形出現,我們需要定制設計規范接口。接手此軟開發的團隊,所在邏輯處層中,實作這個接口即可。下面Insus.NET嘗試寫一個接口,在程序中應用SQL Server的團隊,不管是在邏輯層中寫SQL語句的,還是在邏輯層傳入參數引用存儲過程的,均可實現統一的接口。

上面標記2的返回DbdataReader函數,是為了它能讓Access數據庫(System.Data.OleDb.OleDbDataReader)與SQL數據庫(System.Data.SqlClient.SqlDataReader)均能實作。由于這兩者均是繼承DbDataReader類。這樣的話,以前寫的Access數據庫的邏輯類BizBase,實作這個接口,得修改一下,才符合接口的標準:下面,Insus.NET實現一個邏輯類,是方便用用戶在程序的中習慣寫SQL語句的對象:

接下來,Insus.NET再實現一個邏輯處理類,也是程序與數據庫互通的,不過它是配合SQL Server數據庫的存儲過程來的。當然使用存儲過程,它自然有參數出現。準備之前,先寫一個類Insus.NET.Parameter:

現在就可以創建這個邏輯類了,它有實作接口IBiz:上面有寫兩個public的PRoperty,將是用來給程序對象傳入引用的哪一個存儲過程,以及參數。如果所引用的存儲過程沒有參數,傳入null即可。

        private string _ProcedureName;        private List<Parameter> _Parameters;        public string ProcedureName        {            get { return _ProcedureName; }            set { _ProcedureName = value; }        }        public List<Parameter> Parameters        {            get { return _Parameters; }            set { _Parameters = value; }        }
View Code

還有一個私有方法,它是用來創建參數的。如果size傳入為-1的話,系統將使用默認數據類型長度。

 private SqlParameter CreateParameter(string parameterName, SqlDbType dbType, Int32 size, object value)        {            SqlParameter sqlParameter;            if (size > 0)                sqlParameter = new SqlParameter(parameterName, dbType, size);            else                sqlParameter = new SqlParameter(parameterName, dbType);            sqlParameter.Direction = ParameterDirection.Input;            sqlParameter.Value = value;            return sqlParameter;        }
View Code

BizBaseSqlSp這個類別中,每個方法或是函數,均有幾行代碼冗余:解決冗余,可以把它抽取出來,寫一個私有的方法:

重構好之后的BizBaseSQLSp類:

如果你不想多數據庫集成,你完全抽取其中一個邏輯處理類,作為你的類庫。特別是最后一個。不必再問下面這個類庫的原代碼了:http://m.survivalescaperooms.com/insus/archive/2013/05/23/3096045.html當然,它肯定在asp.net MVC也能用得到。

本篇演示源程序(Access DB; .NET Framework 4.0;):http://download.VEVb.com/insus/ASPDOTNET/Asp_OOP3.rar注:文章太長了,寫成續集,請關注......


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠水县| 佛山市| 玛多县| 桑植县| 黑龙江省| 拉萨市| 河北省| 宜章县| 阳原县| 济宁市| 菏泽市| 洛浦县| 安溪县| 渭源县| 淮北市| 蒙阴县| 常山县| 吉安市| 保定市| 石河子市| 长治市| 驻马店市| 东安县| 静海县| 安陆市| 晋城| 柘荣县| 灵川县| 尼玛县| 航空| 商都县| 琼中| 北宁市| 嘉义县| 新丰县| 海宁市| 白山市| 道孚县| 澎湖县| 抚远县| 方城县|