(1.中南大學(xué) 信息科學(xué)與工程學(xué)院, 湖南 長沙 410083;2.湖南科技學(xué)院 圖書館, 湖南 永州 425100)
ASP.NET 是一種建立在通用語言上的程式構(gòu)架,能被用于一臺 Web服務(wù)器來建立強(qiáng)大的 Web應(yīng)用程式。ASP.NET提供許多比目前的Web研發(fā)模式強(qiáng)大的的優(yōu)勢。ASP.NET是Microsoft.NET的一部分,作為戰(zhàn)略產(chǎn)品,不僅僅是 Active Server Page (ASP) 的下一個版本,是微軟提供的新一代的Web開發(fā)平臺,它為開發(fā)人員提供了一個統(tǒng)一的生成企業(yè)級Web應(yīng)用程序所需要的服務(wù)、編程模型和軟件基礎(chǔ)結(jié)構(gòu)。
ADO.NET提供了平臺互用性和可伸縮的數(shù)據(jù)訪問。是一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢悗?。通常情況下,數(shù)據(jù)源是數(shù)據(jù)庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。 它允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進(jìn)行交互。然而并沒有與此相關(guān)的一系列類來完成這樣的工作。因為不同的數(shù)據(jù)源采用不同的協(xié)議,所以對于不同的數(shù)據(jù)源必須采用相應(yīng)的協(xié)議。一些老式的數(shù)據(jù)源使用 ODBC協(xié)議,許多新的數(shù)據(jù)源使用 OleDb協(xié)議,并且現(xiàn)在還不斷出現(xiàn)更多的數(shù)據(jù)源,這些數(shù)據(jù)源都可以通過.NET的ADO.NET類庫來進(jìn)行連接。
ADO.NET主要包含以下對象:SqlConnection對象、SqlCommand對象、sqlDataReader對象、DataSet對象、SqlDataAdapter對象。與數(shù)據(jù)源進(jìn)行交互的相關(guān)的公共方法都由這些對象提供。
C#語言是在C、C++和Java語言基礎(chǔ)上重新構(gòu)造的、語法與C++和Java語言都比較相似的、基于.NET框架的,一種完全面向?qū)ο蟮摹㈩愋桶踩木幊陶Z言,也是.NET的首選編程語言。從開發(fā)效率來講,C#語言為應(yīng)用程序開發(fā)人員提供了快速的開發(fā)手段,但又不犧牲C++語言的特點和優(yōu)勢。從繼承性來講,C#語言在更高層次上重新實現(xiàn)了 C和 C++語言。從語法形式和易用性來講,C#語言幾乎綜合了目前流行的所有高級語言的優(yōu)點,提供了一種語法優(yōu)雅、功能完善而又容易使用的外在表現(xiàn)形式。作為.NET的核心編程語言,c#為程序員提供快速便捷地創(chuàng)建基于Microsoft .NET平臺的解決方案。
4.1 數(shù)據(jù)庫常用操作具體分析
在WEB項目中經(jīng)常會對數(shù)據(jù)庫進(jìn)行各種操作,經(jīng)過分析會發(fā)現(xiàn)數(shù)據(jù)庫常用的操作主要可分為三類:建立、關(guān)閉數(shù)據(jù)庫的連接;執(zhí)行沒有返回值的SQL語句和存儲過程;執(zhí)行有返回值的SQL語句和存儲過程。再對以上三種情況進(jìn)行分析,第一類操作情況比較簡單,主要有兩種:建立連接數(shù)據(jù)庫、關(guān)閉數(shù)據(jù)庫的連接;第二類操作的情況:執(zhí)行無返回值的SQL語句、執(zhí)行執(zhí)行無返回值的存儲過程。第三種情況比較復(fù)雜,因為在具體的項目當(dāng)中會根據(jù)不同的需要返回不同的數(shù)據(jù)類型的值,根據(jù)返回值類型的不同主要可分為以下幾種情況:返回指定Sql語句的SqlDataReade、返回指定Sql語句的DataSet、返回指定Sql語句的DataTable等。以上只是簡單分析了數(shù)據(jù)庫常用操作,在后兩種操作當(dāng)中可以繼續(xù)分為帶參數(shù)和不帶參數(shù)兩種情況,情況更為復(fù)雜。
4.2 實現(xiàn)數(shù)據(jù)庫操作通用類的必要性分析
在ASP.NET中利用C#語言開發(fā)任何WEB項目都離不開ADO.NET提供的數(shù)據(jù)庫訪問技術(shù)的支持。在以上分析中ADO.NET在具體的使用進(jìn)行過程中情況卻比較復(fù)雜,在不同的項目或者在同一項目的不同應(yīng)用中可能會使用ADO.NET中不同的對象和不同的方法,為了適應(yīng)不同的項目和不同應(yīng)用的需要非常有必要利用 ADO.NET實現(xiàn)一個可移植的數(shù)據(jù)庫操作通用類。
在對數(shù)據(jù)庫常用操作進(jìn)行具體分析之后,根據(jù)這些情況本文中使用C#語言建立一個SQL server數(shù)據(jù)庫為例數(shù)據(jù)庫通用操作類。
數(shù)據(jù)庫通用操作類中主要方法有:建立與數(shù)據(jù)庫連接的方法 openConnection、關(guān)閉與數(shù)據(jù)庫連接的方法closeConnection、執(zhí)行帶參數(shù)存儲過程 ExecutePorcedure、執(zhí)行帶參數(shù)SQL語句返回一個dataReader對象dataReader、執(zhí)行帶參數(shù)SQL語句返回dataTable對象dataTable、執(zhí)行帶參數(shù)SQL語句返回一個dataSet對象DataSet dataSet等,基本可以滿足不同項目中的不同應(yīng)用。
數(shù)據(jù)庫通用操作類部分代碼(C#)如下:
利用面向?qū)ο笳Z言的方法重載等技術(shù),數(shù)據(jù)庫通用操作類考慮了輸入?yún)?shù)個數(shù)不同、輸入?yún)?shù)類型不通、有或者無返回值、有返回值但返回值類型不同等各種情況,可以滿足ASP.NET中對數(shù)據(jù)庫的各種操作的需求,在具體應(yīng)用中只需要適當(dāng)調(diào)用其中相應(yīng)的方法即可,充分體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的思想,大大提高代碼分離程度和代碼重用率,更加利于網(wǎng)站的后期維護(hù)和再開發(fā)。
[1]張麗.一個基于 ASP.NET的數(shù)據(jù)庫操作類的設(shè)計與實現(xiàn)[J].華南金融電腦,2008.
[2]李勇平,陳峰波.ASP.NET(C#)基礎(chǔ)教程[M].清華大學(xué)出版社,2006.