- ASP.NET項目開發(fā)全程實錄(第4版)
- 明日科技
- 2077字
- 2019-12-06 12:04:52
3.5 公共類設(shè)計
在網(wǎng)站項目開發(fā)中以類的形式來組織、封裝一些常用的方法和事件,將會在編程過程中起到事半功倍的效果。本系統(tǒng)創(chuàng)建了兩個公共類文件,分別為DataBase.cs(數(shù)據(jù)庫操作類)和DataOperate.cs(基礎(chǔ)數(shù)據(jù)操作類),而DataOperate.cs公共類文件中又包括DataOperate(基礎(chǔ)數(shù)據(jù)操作類)、UserOperate(用戶操作類)、ProductOperate(產(chǎn)品操作類)、NewsOperate(公告及新聞操作類)、LinkOperate(友情鏈接操作類)、LeaveWordOperate(留言簿操作類)、RevertOperate(回復(fù)留言操作類)和EngageOperate(招聘信息操作類)8個類,由于篇幅所限,而且各個操作類的實現(xiàn)原理大致相同,下面主要對DataBase(數(shù)據(jù)庫操作類)、DataOperate(基礎(chǔ)數(shù)據(jù)操作類)和UserOperate(用戶操作類)3個公共類進行講解,其他類及其方法請參見本書附帶的資源包。
3.5.1 DataBase類
DataBase(數(shù)據(jù)庫操作類)類主要實現(xiàn)的功能有打開數(shù)據(jù)庫連接、關(guān)閉數(shù)據(jù)庫連接、釋放數(shù)據(jù)庫連接資源、傳入?yún)?shù)并且轉(zhuǎn)換為SqlParameter類型、執(zhí)行參數(shù)命令文本(無返回值)、執(zhí)行參數(shù)命令文本(有返回值)、將命令文本添加到SqlDataAdapter和將命令文本添加到SqlCommand。下面給出所有的數(shù)據(jù)庫操作類源代碼,并且進行詳細介紹。
在命名空間區(qū)域引用using System.Data.SqlClient命名空間。為了精確地控制釋放未托管資源,必須實現(xiàn)DataBase類的System.IDisposable接口,IDisposable接口聲明了一個方法Dispose,該方法不帶參數(shù),返回Void。相關(guān)代碼如下:
例程01 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

建立數(shù)據(jù)庫的連接主要通過SqlConnection類實現(xiàn),并初始化數(shù)據(jù)庫連接字符串,然后通過State屬性判斷連接狀態(tài),如果數(shù)據(jù)庫連接狀態(tài)為關(guān)閉,則打開數(shù)據(jù)庫連接。實現(xiàn)打開數(shù)據(jù)庫連接Open方法的代碼如下:
例程02 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

關(guān)閉數(shù)據(jù)庫連接主要通過SqlConnection對象的Close方法實現(xiàn)。自定義Close方法關(guān)閉數(shù)據(jù)庫連接的代碼如下:
例程03 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

因為DataBase類使用System.IDisposable接口,IDisposable接口聲明了一個方法Dispose,所以在此應(yīng)該完善IDisposable接口的Dispose方法,用來釋放數(shù)據(jù)庫連接資源。實現(xiàn)釋放數(shù)據(jù)庫連接資源的Dispose方法的代碼如下:
例程04 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

本系統(tǒng)向數(shù)據(jù)庫中讀/寫數(shù)據(jù)是以參數(shù)形式實現(xiàn)的。MakeInParam方法用于傳入?yún)?shù),MakeParam方法用于轉(zhuǎn)換參數(shù)。實現(xiàn)MakeInParam方法和MakeParam方法的完整代碼如下:
例程05 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

RunProc方法為可重載方法,其中,RunProc(string procName, SqlParameter[] prams)方法主要用于執(zhí)行數(shù)據(jù)的添加、修改和刪除操作;RunProc(string procName)方法用來直接執(zhí)行SQL語句,比如數(shù)據(jù)庫備份與恢復(fù)等操作。實現(xiàn)可重載方法RunProc的完整代碼如下:
例程06 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

RunProcReturn方法為可重載方法,返回值為DataSet類型,其中,RunProcReturn(string procName,SqlParameter[] prams,string tbName)方法主要用于執(zhí)行帶參數(shù)SqlParameter的查詢命令文本;RunProcReturn(string procName, string tbName)用于直接執(zhí)行查詢SQL語句??芍剌d方法RunProcReturn的完整代碼如下:
例程07 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

CreateDataAdaper方法用來將帶參數(shù)SqlParameter的命令文本添加到SqlDataAdapter中,并執(zhí)行命令文本。CreateDataAdaper方法的完整代碼如下:
例程08 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

CreateCommand方法用來將帶參數(shù)SqlParameter的命令文本添加到SqlCommand中,并執(zhí)行命令文本。CreateCommand方法的完整代碼如下:
例程09 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataBase.cs

3.5.2 DataOperate類
DataOperate(基礎(chǔ)數(shù)據(jù)操作類)類主要實現(xiàn)的功能有自動生成編號、對字符串進行各種驗證、上傳圖片、對DataList控件進行數(shù)據(jù)綁定并分頁、截取指定長度的字符串和設(shè)置第三方組件FreeTextBox中的字體等,下面給出基礎(chǔ)數(shù)據(jù)操作類中各方法的源代碼,并且進行詳細介紹。
getID方法用來根據(jù)數(shù)據(jù)庫中已經(jīng)存在的記錄自動生成編號,其實現(xiàn)代碼如下:
例程10 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

validateNum方法用來驗證輸入的字符串是否為數(shù)字,其實現(xiàn)代碼如下:
例程11 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

說明
驗證郵編、電話號碼、E-mail地址和網(wǎng)址的實現(xiàn)的方法與驗證數(shù)字類似,只是正則表達式有所不同,這里不再一一列舉。
UpPhoto方法主要用來實現(xiàn)上傳圖片并在Image控件中顯示上傳圖片的功能,其實現(xiàn)代碼如下:
例程12 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

dlBind方法主要用來將數(shù)據(jù)庫的數(shù)據(jù)綁定到DataList控件并進行分頁顯示,其實現(xiàn)代碼如下:
例程13 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

SubStr方法主要用來根據(jù)用戶輸入的參數(shù)截取指定長度的字符串,其實現(xiàn)代碼如下:
例程14 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

strFont方法主要用來設(shè)置第三方組件FreeTextBox中的字體,其實現(xiàn)代碼如下:
例程15 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

3.5.3 UserOperate類
UserOperate(用戶操作類)類主要用來實現(xiàn)企業(yè)門戶網(wǎng)站中用戶和管理員的添加、修改、刪除、查詢和登錄等功能。
用戶操作類中的方法主要提供給陳述層調(diào)用,從編碼的角度出發(fā),該類中方法的實現(xiàn)是建立在數(shù)據(jù)層(數(shù)據(jù)庫操作類DataBase.cs)基礎(chǔ)上,下面將詳細介紹。
在用戶操作類中,首先定義用戶信息的數(shù)據(jù)結(jié)構(gòu),代碼如下:
例程16 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs



AddUser方法主要實現(xiàn)添加用戶信息功能,實現(xiàn)關(guān)鍵技術(shù):創(chuàng)建SqlParameter參數(shù)數(shù)組,通過DataBase.cs(數(shù)據(jù)庫操作類)中的MakeInParam方法將參數(shù)值轉(zhuǎn)換為SqlParameter類型,存儲在數(shù)組中,最后調(diào)用DataBase.cs(數(shù)據(jù)庫操作類)中的RunProc方法執(zhí)行命令文本,代碼如下:
例程17 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

UpdateUser方法主要實現(xiàn)修改用戶信息功能,其實現(xiàn)關(guān)鍵技術(shù)與AddUser方法類似,代碼如下:
例程18 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

DeleteUser方法主要實現(xiàn)根據(jù)編號刪除用戶信息功能,其實現(xiàn)關(guān)鍵技術(shù)與AddUser方法類似,代碼如下:
例程19 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

UserOperate(用戶操作類)類中定義了4種查找用戶信息的方法,方法名稱分別為FindUserByName、FindResult、FindUserByMarker和GetAllUser,其中,F(xiàn)indUserByName方法用來根據(jù)用戶姓名找到用戶信息;FindResult方法用來根據(jù)用戶姓名和密碼問題找到密碼答案;FindUserByMarker方法用來根據(jù)標(biāo)識找到用戶信息;GetAllUser方法用來得到所有用戶信息。查找用戶信息方法的實現(xiàn)代碼如下:
例程20 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

UserLogin和AdminLogin方法分別用來實現(xiàn)用戶登錄和管理員登錄功能,其實現(xiàn)關(guān)鍵技術(shù)與AddUser方法類似,代碼如下:
例程21 代碼位置:資源包\TM\03\EnterpriseWeb\App_Code\DataOperate.cs

- 安全之美
- 計算機信息檢索
- Web應(yīng)用開發(fā)技術(shù)與案例教程
- 網(wǎng)絡(luò)掃描技術(shù)揭秘:原理、實踐與掃描器的實現(xiàn)
- 深入集群:大型數(shù)據(jù)中心資源調(diào)度與管理
- 矛與盾:黑客攻防與腳本編程
- 深入淺出Vue.js
- 掌控你的工作?。呵捎肙utlook極速提升工作效率
- 萬億級流量轉(zhuǎn)發(fā):BFE核心技術(shù)與實現(xiàn)
- 全球網(wǎng)絡(luò)身份管理的現(xiàn)狀與發(fā)展
- 大話云計算:從云起源到智能云未來
- 全棧性能測試修煉寶典:JMeter實戰(zhàn)(第2版)
- 開源云計算平臺CloudStack實戰(zhàn)
- 計算機網(wǎng)絡(luò)實驗教程
- 網(wǎng)頁設(shè)計與制作:Dreamweaver+Flash+Photoshop+HTML5+CSS3(慕課版)