劉寶娥
(集寧師范學院 計算機系,內蒙古 烏蘭察布 012000)
利用ADO.NET技術開發SQL Server數據庫的相關研究
劉寶娥
(集寧師范學院 計算機系,內蒙古 烏蘭察布 012000)
要設計大型網站,不能不使用數據庫.數據庫可以理解為計算機中用于存儲數據的倉庫,將各種數據按照某種組織方式存入數據庫,便于管理和處理.當前應用最廣的是基于關系代數的關系型數據庫,SQL Server數據庫就是一種應用比較廣泛的關系型數據庫.ADO.NET技術的一個重要優點就是可以以離線的方式操作數據庫,被設計成可以以斷開的方式操作數據集,應用程序只有在要取得數據或是更新數據的時候才對數據源進行聯機,所以可以減少應用程序對服務器資源的占用,提高了應用程序的效率.
ADO.NET;SQL Server數據庫;數據庫連接;數據庫操作
數據庫在任何應用程序開發中都顯得非常重要,特別在ASP.NET應用程序開發中,數據庫通常被用來保存用戶的信息、文章內容等數據,同時數據庫也能夠提供用戶進行查詢、更新等操作.ASP.NET應用程序開發環境提供了一種ADO.NET技術,就是一組用于和數據源進行交互的面向對象類庫,它能夠讓開發者方便地在應用程序中使用和操作數據.ADO.NET的主要功能就是實現對數據庫的操作(如讀取、插入、更新、刪除等)和以快速簡單的方式進行訪問.下面以ASP.NET應用程序開發環境為例,介紹如何利用ADO.NET組件來開發SQL Server數據庫.
在ASP.NET應用程序開發中,要想實現對數據庫的操作,首先要創建與數據庫的連接.在.NET Framework框架中,可以利用ADO.NET提供的SqlConnection對象實現與SQL Server數據庫的連接管理功能.
在使用SqlConnection對象連接SQL Server數據庫時,首先需要提供一個連接字符串,該字符串一般由名稱和值組合而成.其中名稱為連接字符串的屬性的名稱,值為連接字符串的屬性的值.可以在ASP.NET開發環境的配置文件Web.config中的


使用SqlConnection對象連接SQL Server數據庫,首先利用SqlConnection(String)構造函數創建一個新的SqlConnection對象sqlConn,其中的字符串參數就是指定的連接字符串,可以通過配置文件Web.config的

然后調用SqlConnection對象的Open()方法打開數據庫的連接.其方法如下:
sqlConn.Open();
打開數據庫的連接以后,開發人員就可以通過ADO.NET的相關對象實現對數據庫的操作.當用完連接對象以后必須關閉數據庫的連接.其方法如下:
sqlConn.Close();
結構化查詢語言簡稱“SQL”,SQL是高級的非過程化編程語言,允許用戶在高層數據結構上工作,它不需要用戶了解具體的數據存放方式,所以底層結構的完全不同數據庫系統都可以使用相同的SQL語言作為數據輸入與管理的接口.
在ASP.NET應用程序開發中,可以通過SQL語言來實現對SQL Server數據庫的操作,但必須利用ADO.NET提供的相關對象來實現.
SqlCommand對象是ADO.NET的重要對象,又稱SQL執行命令.它可以執行數據庫的Transact-SQL語句和存儲過程,從而實現對數據庫中的行數據進行選擇、插入、更新和刪除等操作.
SqlCommand對象提供了多種方法,使得用戶在讀取數據時,能夠得到不同類型的結果.如ExecuteReader()方法返回一個SqlDataReader類型的對象,用于執行數據庫的查詢操作,并通過Sql-DataReader對象的Read()方法進行逐行讀取.ExecuteNonQuery()方法返回一個int型的值,用于執行增加、刪除、修改數據,并返回受影響的行數.ExecuteScaler()方法返回一個int型的值,一般適用于執行select查詢并返回結果為一個值的情況,比如使用count函數求表中記錄個數或者使用sum函數求和.
SqlCommand類提供了設置執行命令條件的屬性.CommandText屬性設置對數據源執行的Transact—SQL語句或存儲過程.CommandType設置一個值指示如何解釋CommandText屬性,當取值為Text(默認值),則表示CommandText屬性值解釋為Transact—SQL語句,當取值為 StoreProcedure,則表示CommandText屬性值解釋為存儲過程方式.
通過SqlCommand類的構造函數創建實例對象cmd,其構造函數的參數有兩個,一個是需要執行的SQL語句或存儲過程名,另一個是數據庫連接對象.創建SqlCommand對象后,就可以執行相應的SQL操作.開發人員可以重置CommandText屬性并重復使用SqlCommand對象.以執行數據庫的Transact-SQL語句為例,其示例代碼如下:
SqlCommand cmd=new SqlCommand("insert into users value('小劉 ',123)",sqlConn);
//創建SqlCommand對象,指定SQL命令和數據庫連接對象sqlConn
cmd.ExecuteNonQuery();
//執行SQL命令
DataSet是ADO.NET包含的主要對象,它是支持ADO.NET斷開式、分布式數據方案的核心對象,是從數據源中檢索到的數據在內存中的緩存.DataSet是不依賴于數據庫的獨立數據集合,即使斷開數據鏈路,或者關閉數據庫,DataSet依然是可用的.
SqlDataAdapter對象表示一組數據命令和一個數據庫連接,在DataSet與數據之間起橋梁作用,可以用來填充數據集或更新數據,其填充和更新數據集的方法分別為Fill()和Update().
使用DataSet和SqlDataAdapter對象查詢數據,首先要創建DataSet對象,然后通過調用Sql-DataAdapter的Fill方法將取得的數據導入到DataSet中.SqlDataAdapter的Fill()方法需要兩個參數,一個是被填充的DataSet中的數據的命名,其填充的數據可以看成是一張表,第二個參數就是這張表的名字.填充完了后,就可以方便的訪問數據了.其示例代碼如下:

隨著網絡技術的飛速發展以及網絡信息的不斷增加,數據庫訪問技術越來越受到人們的關注,ADO.NET數據訪問技術更是受到了廣泛的好評.通過上述操作,開發人員可以方便地在ASP.NET應用程序開發環境中實現對數據庫的操作.
〔1〕王寶祥.基于ADO NET的數據庫訪問技術研究[J].計算機應用與軟件,2004(2).
〔2〕李昕,常革新,崔杰.基于ADO.NET的ASP.NET頁面程序 [J].遼寧工程技術大學學報,2006(2).
〔3〕應毅,毛宇光,劉正濤.基于 ADO.NET 技術的Web訪問數據庫研究與實現[J].計算機與現代化,2005(4).
〔4〕曾文全.基于SQL Server2000數據庫的分布式數據庫的架構[J].教育信息化,2006(1).
〔5〕馮本勇.數據庫查詢優化技術探討[J].石家莊理工職業學院學術研究,2008(4).
〔6〕梁銘.SQL Server數據庫性能優化[J].硅谷,2009(2).
TP311.1
A
1673-260X(2012)02-0046-02