劉寶娥
(集寧師范學(xué)院 計算機(jī)系,內(nèi)蒙古 烏蘭察布 012000)
利用ADO.NET技術(shù)開發(fā)SQL Server數(shù)據(jù)庫的相關(guān)研究
劉寶娥
(集寧師范學(xué)院 計算機(jī)系,內(nèi)蒙古 烏蘭察布 012000)
要設(shè)計大型網(wǎng)站,不能不使用數(shù)據(jù)庫.數(shù)據(jù)庫可以理解為計算機(jī)中用于存儲數(shù)據(jù)的倉庫,將各種數(shù)據(jù)按照某種組織方式存入數(shù)據(jù)庫,便于管理和處理.當(dāng)前應(yīng)用最廣的是基于關(guān)系代數(shù)的關(guān)系型數(shù)據(jù)庫,SQL Server數(shù)據(jù)庫就是一種應(yīng)用比較廣泛的關(guān)系型數(shù)據(jù)庫.ADO.NET技術(shù)的一個重要優(yōu)點就是可以以離線的方式操作數(shù)據(jù)庫,被設(shè)計成可以以斷開的方式操作數(shù)據(jù)集,應(yīng)用程序只有在要取得數(shù)據(jù)或是更新數(shù)據(jù)的時候才對數(shù)據(jù)源進(jìn)行聯(lián)機(jī),所以可以減少應(yīng)用程序?qū)Ψ?wù)器資源的占用,提高了應(yīng)用程序的效率.
ADO.NET;SQL Server數(shù)據(jù)庫;數(shù)據(jù)庫連接;數(shù)據(jù)庫操作
數(shù)據(jù)庫在任何應(yīng)用程序開發(fā)中都顯得非常重要,特別在ASP.NET應(yīng)用程序開發(fā)中,數(shù)據(jù)庫通常被用來保存用戶的信息、文章內(nèi)容等數(shù)據(jù),同時數(shù)據(jù)庫也能夠提供用戶進(jìn)行查詢、更新等操作.ASP.NET應(yīng)用程序開發(fā)環(huán)境提供了一種ADO.NET技術(shù),就是一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢悗?,它能夠讓開發(fā)者方便地在應(yīng)用程序中使用和操作數(shù)據(jù).ADO.NET的主要功能就是實現(xiàn)對數(shù)據(jù)庫的操作(如讀取、插入、更新、刪除等)和以快速簡單的方式進(jìn)行訪問.下面以ASP.NET應(yīng)用程序開發(fā)環(huán)境為例,介紹如何利用ADO.NET組件來開發(fā)SQL Server數(shù)據(jù)庫.
在ASP.NET應(yīng)用程序開發(fā)中,要想實現(xiàn)對數(shù)據(jù)庫的操作,首先要創(chuàng)建與數(shù)據(jù)庫的連接.在.NET Framework框架中,可以利用ADO.NET提供的SqlConnection對象實現(xiàn)與SQL Server數(shù)據(jù)庫的連接管理功能.
在使用SqlConnection對象連接SQL Server數(shù)據(jù)庫時,首先需要提供一個連接字符串,該字符串一般由名稱和值組合而成.其中名稱為連接字符串的屬性的名稱,值為連接字符串的屬性的值.可以在ASP.NET開發(fā)環(huán)境的配置文件Web.config中的
使用SqlConnection對象連接SQL Server數(shù)據(jù)庫,首先利用SqlConnection(String)構(gòu)造函數(shù)創(chuàng)建一個新的SqlConnection對象sqlConn,其中的字符串參數(shù)就是指定的連接字符串,可以通過配置文件Web.config的
然后調(diào)用SqlConnection對象的Open()方法打開數(shù)據(jù)庫的連接.其方法如下:
sqlConn.Open();
打開數(shù)據(jù)庫的連接以后,開發(fā)人員就可以通過ADO.NET的相關(guān)對象實現(xiàn)對數(shù)據(jù)庫的操作.當(dāng)用完連接對象以后必須關(guān)閉數(shù)據(jù)庫的連接.其方法如下:
sqlConn.Close();
結(jié)構(gòu)化查詢語言簡稱“SQL”,SQL是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作,它不需要用戶了解具體的數(shù)據(jù)存放方式,所以底層結(jié)構(gòu)的完全不同數(shù)據(jù)庫系統(tǒng)都可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的接口.
在ASP.NET應(yīng)用程序開發(fā)中,可以通過SQL語言來實現(xiàn)對SQL Server數(shù)據(jù)庫的操作,但必須利用ADO.NET提供的相關(guān)對象來實現(xiàn).
SqlCommand對象是ADO.NET的重要對象,又稱SQL執(zhí)行命令.它可以執(zhí)行數(shù)據(jù)庫的Transact-SQL語句和存儲過程,從而實現(xiàn)對數(shù)據(jù)庫中的行數(shù)據(jù)進(jìn)行選擇、插入、更新和刪除等操作.
SqlCommand對象提供了多種方法,使得用戶在讀取數(shù)據(jù)時,能夠得到不同類型的結(jié)果.如ExecuteReader()方法返回一個SqlDataReader類型的對象,用于執(zhí)行數(shù)據(jù)庫的查詢操作,并通過Sql-DataReader對象的Read()方法進(jìn)行逐行讀取.ExecuteNonQuery()方法返回一個int型的值,用于執(zhí)行增加、刪除、修改數(shù)據(jù),并返回受影響的行數(shù).ExecuteScaler()方法返回一個int型的值,一般適用于執(zhí)行select查詢并返回結(jié)果為一個值的情況,比如使用count函數(shù)求表中記錄個數(shù)或者使用sum函數(shù)求和.
SqlCommand類提供了設(shè)置執(zhí)行命令條件的屬性.CommandText屬性設(shè)置對數(shù)據(jù)源執(zhí)行的Transact—SQL語句或存儲過程.CommandType設(shè)置一個值指示如何解釋CommandText屬性,當(dāng)取值為Text(默認(rèn)值),則表示CommandText屬性值解釋為Transact—SQL語句,當(dāng)取值為 StoreProcedure,則表示CommandText屬性值解釋為存儲過程方式.
通過SqlCommand類的構(gòu)造函數(shù)創(chuàng)建實例對象cmd,其構(gòu)造函數(shù)的參數(shù)有兩個,一個是需要執(zhí)行的SQL語句或存儲過程名,另一個是數(shù)據(jù)庫連接對象.創(chuàng)建SqlCommand對象后,就可以執(zhí)行相應(yīng)的SQL操作.開發(fā)人員可以重置CommandText屬性并重復(fù)使用SqlCommand對象.以執(zhí)行數(shù)據(jù)庫的Transact-SQL語句為例,其示例代碼如下:
SqlCommand cmd=new SqlCommand("insert into users value('小劉 ',123)",sqlConn);
//創(chuàng)建SqlCommand對象,指定SQL命令和數(shù)據(jù)庫連接對象sqlConn
cmd.ExecuteNonQuery();
//執(zhí)行SQL命令
DataSet是ADO.NET包含的主要對象,它是支持ADO.NET斷開式、分布式數(shù)據(jù)方案的核心對象,是從數(shù)據(jù)源中檢索到的數(shù)據(jù)在內(nèi)存中的緩存.DataSet是不依賴于數(shù)據(jù)庫的獨立數(shù)據(jù)集合,即使斷開數(shù)據(jù)鏈路,或者關(guān)閉數(shù)據(jù)庫,DataSet依然是可用的.
SqlDataAdapter對象表示一組數(shù)據(jù)命令和一個數(shù)據(jù)庫連接,在DataSet與數(shù)據(jù)之間起橋梁作用,可以用來填充數(shù)據(jù)集或更新數(shù)據(jù),其填充和更新數(shù)據(jù)集的方法分別為Fill()和Update().
使用DataSet和SqlDataAdapter對象查詢數(shù)據(jù),首先要創(chuàng)建DataSet對象,然后通過調(diào)用Sql-DataAdapter的Fill方法將取得的數(shù)據(jù)導(dǎo)入到DataSet中.SqlDataAdapter的Fill()方法需要兩個參數(shù),一個是被填充的DataSet中的數(shù)據(jù)的命名,其填充的數(shù)據(jù)可以看成是一張表,第二個參數(shù)就是這張表的名字.填充完了后,就可以方便的訪問數(shù)據(jù)了.其示例代碼如下:
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展以及網(wǎng)絡(luò)信息的不斷增加,數(shù)據(jù)庫訪問技術(shù)越來越受到人們的關(guān)注,ADO.NET數(shù)據(jù)訪問技術(shù)更是受到了廣泛的好評.通過上述操作,開發(fā)人員可以方便地在ASP.NET應(yīng)用程序開發(fā)環(huán)境中實現(xiàn)對數(shù)據(jù)庫的操作.
〔1〕王寶祥.基于ADO NET的數(shù)據(jù)庫訪問技術(shù)研究[J].計算機(jī)應(yīng)用與軟件,2004(2).
〔2〕李昕,常革新,崔杰.基于ADO.NET的ASP.NET頁面程序 [J].遼寧工程技術(shù)大學(xué)學(xué)報,2006(2).
〔3〕應(yīng)毅,毛宇光,劉正濤.基于 ADO.NET 技術(shù)的Web訪問數(shù)據(jù)庫研究與實現(xiàn)[J].計算機(jī)與現(xiàn)代化,2005(4).
〔4〕曾文全.基于SQL Server2000數(shù)據(jù)庫的分布式數(shù)據(jù)庫的架構(gòu)[J].教育信息化,2006(1).
〔5〕馮本勇.數(shù)據(jù)庫查詢優(yōu)化技術(shù)探討[J].石家莊理工職業(yè)學(xué)院學(xué)術(shù)研究,2008(4).
〔6〕梁銘.SQL Server數(shù)據(jù)庫性能優(yōu)化[J].硅谷,2009(2).
TP311.1
A
1673-260X(2012)02-0046-02