官术网_书友最值得收藏!

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

主站蜘蛛池模板: 崇仁县| 巢湖市| 闵行区| 双峰县| 双桥区| 峡江县| 大兴区| 偏关县| 长垣县| 拉孜县| 灯塔市| 鄄城县| 洛宁县| 新建县| 福建省| 鹰潭市| 集安市| 庄浪县| 小金县| 会东县| 绍兴县| 杭锦旗| 鹿邑县| 富锦市| 大方县| 双桥区| 喜德县| 赤城县| 招远市| 巴青县| 任丘市| 高邑县| 乐至县| 安国市| 阜新市| 穆棱市| 天峻县| 鸡泽县| 梓潼县| 普格县| 灵宝市|