數(shù)據(jù)庫(kù)系統(tǒng)課件:數(shù)據(jù)庫(kù)編程基礎(chǔ)_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課件:數(shù)據(jù)庫(kù)編程基礎(chǔ)_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課件:數(shù)據(jù)庫(kù)編程基礎(chǔ)_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課件:數(shù)據(jù)庫(kù)編程基礎(chǔ)_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)課件:數(shù)據(jù)庫(kù)編程基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)編程基礎(chǔ) ADO.NET簡(jiǎn)介ActiveX Data Objects.NET(簡(jiǎn)稱(chēng)ADO.NET)是微軟設(shè)計(jì)的一種新的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)。ADO.NET并非是ADO的升級(jí)版,同以往的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)相比,ADO.NET有很多數(shù)據(jù)處理的優(yōu)勢(shì)。首先ADO.NET提供了對(duì)XML的強(qiáng)大支持,可以通過(guò)XMLReader、XMLWriter、XMLNavigater和 XMLDocument等方便地創(chuàng)建和使用XML數(shù)據(jù);其次ADO.NET是為關(guān)系數(shù)據(jù)訪(fǎng)問(wèn)和非關(guān)系數(shù)據(jù)訪(fǎng)問(wèn)設(shè)計(jì)的數(shù)據(jù)連接模型,它可以實(shí)現(xiàn)對(duì)數(shù)據(jù)源的非連接處理;另外ADO.NET新增了一些對(duì)象,如DataReader可以產(chǎn)生一個(gè)只讀的記錄集,用來(lái)

2、實(shí)現(xiàn)快速讀取數(shù)據(jù)。 ADO.NET簡(jiǎn)介ADO.NET的最突出的特性是可以采用非連接的方式訪(fǎng)問(wèn)和處理數(shù)據(jù),這是ADO所沒(méi)有的(ADO只能采用連接的方式訪(fǎng)問(wèn)和處理數(shù)據(jù))。ADO采用基于連接的方式處理數(shù)據(jù)庫(kù)的最大不足就是它耗費(fèi)了太多的資源,尤其當(dāng)在網(wǎng)絡(luò)環(huán)境下時(shí),大量用戶(hù)同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)會(huì)給數(shù)據(jù)庫(kù)服務(wù)器造成很大的負(fù)擔(dān)。ADO.NET只在必要的時(shí)候?qū)?shù)據(jù)庫(kù)進(jìn)行連接,當(dāng)處理完畢后它將及時(shí)關(guān)閉連接,這就保證了數(shù)據(jù)庫(kù)服務(wù)器資源的可用性,使它可以為更多的用戶(hù)服務(wù),因此也就更加適合網(wǎng)絡(luò)應(yīng)用。ADO.NET具有兩大核心組件: DataSet數(shù)據(jù)集和.NET Data Provider數(shù)據(jù)提供程序。.NET Data

3、Provider中包括Connection對(duì)象、Command對(duì)象、DataReader對(duì)象和DataAdapter 對(duì)象。Connection對(duì)象用來(lái)和數(shù)據(jù)源進(jìn)行連接;Command對(duì)象可以用來(lái)從數(shù)據(jù)庫(kù)中返回?cái)?shù)據(jù)、修改數(shù)據(jù)或運(yùn)行存儲(chǔ)過(guò)程;DataReader對(duì)象則提供了對(duì)數(shù)據(jù)庫(kù)的快速只讀、前向訪(fǎng)問(wèn)功能;DataAdapter 對(duì)象是數(shù)據(jù)源和數(shù)據(jù)集DataSet對(duì)象交換數(shù)據(jù)的橋梁,它負(fù)責(zé)將數(shù)據(jù)庫(kù)中的數(shù)據(jù)填充到DataSet對(duì)象中。ADO.NET體系結(jié)構(gòu)如下圖所示AJAX數(shù)據(jù)庫(kù).NET 數(shù)據(jù)提供程序ConnectionTransactionCommandParametersDataReaderD

4、ataAdapterSelectCommandInsertCommandUpdateCommandDeleteCommandDataSetDataTableCollectionDataTableDataRowCollectionDataColumnCollectionConstraintCollectionDataRelationCollectionXMLVB是微軟早期的數(shù)據(jù)庫(kù)編程語(yǔ)言,其中的ADO對(duì)象中比較重要的一個(gè)對(duì)象是記錄集Recordset對(duì)象。Recordset對(duì)象用記錄集保存從數(shù)據(jù)庫(kù)中返回的數(shù)據(jù),ADO緩存中的數(shù)據(jù)是由一條條記錄構(gòu)成的記錄集。ADO把記錄集當(dāng)作一個(gè)表,對(duì)數(shù)據(jù)庫(kù)的操作

5、就演化為對(duì)該表的操作。如果記錄集的內(nèi)容來(lái)自多個(gè)數(shù)據(jù)庫(kù)表,還必須使用關(guān)聯(lián)查詢(xún)把它們合并到一個(gè)表中。與ADO中的Recordset對(duì)象對(duì)應(yīng),在ADO.NET中提供了一個(gè)數(shù)據(jù)集DataSet對(duì)象,它取代了Recordset對(duì)象的位置。ADO.NET就是使用數(shù)據(jù)集DataSet對(duì)象實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的非連接處理。數(shù)據(jù)集DataSet對(duì)象可以理解為一個(gè)本地的小型數(shù)據(jù)庫(kù)。數(shù)據(jù)集模型包含一個(gè)由單個(gè)或多個(gè)數(shù)據(jù)表(DataTable)組成的集合,而DataTable又由許多行(DataRow)和列(DataColumn)組成。DataSet對(duì)象中還包含一個(gè)DataRelation對(duì)象的集合,用它來(lái)表示各個(gè)數(shù)據(jù)表

6、之間的關(guān)系,數(shù)據(jù)集結(jié)構(gòu)如圖所示。數(shù)據(jù)集包含了用戶(hù)請(qǐng)求的那部分?jǐn)?shù)據(jù)庫(kù)在內(nèi)存中的備份。這個(gè)備份甚至能包含多個(gè)表以及表之間的關(guān)系的整個(gè)數(shù)據(jù)庫(kù)。所以對(duì)于數(shù)據(jù)集對(duì)象的訪(fǎng)問(wèn)類(lèi)似于對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),即數(shù)據(jù)集提供了被訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的非連接備份離線(xiàn)備份,這相當(dāng)于直接給出了處理數(shù)據(jù)庫(kù)的情境,也就是說(shuō),給用戶(hù)的感覺(jué)是數(shù)據(jù)集與數(shù)據(jù)源是直接連接的。ADO.NET連接數(shù)據(jù)源機(jī)制是:首先通過(guò)數(shù)據(jù)提供程序中的Connection對(duì)象連接數(shù)據(jù)源,然后由DataAdapter對(duì)象用數(shù)據(jù)庫(kù)的數(shù)據(jù)填充數(shù)據(jù)集,并通過(guò)Command和DataReader對(duì)象對(duì)數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行各種操作,最后把對(duì)數(shù)據(jù)源數(shù)據(jù)的更新返回?cái)?shù)據(jù)源,如圖1所示。這種連接

7、機(jī)制可以避免多重寫(xiě)入和多重讀出??梢?jiàn)數(shù)據(jù)集是通過(guò)無(wú)關(guān)聯(lián)對(duì)象訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)信息的,實(shí)現(xiàn)了連接對(duì)象與數(shù)據(jù)對(duì)象的相對(duì)獨(dú)立。數(shù)據(jù)集的缺點(diǎn)是要求高速緩存大量的數(shù)據(jù),如當(dāng)需要將表中的所有數(shù)據(jù)送入數(shù)據(jù)集時(shí)。 為了更好地理解ADO.NET的架構(gòu)模型的各個(gè)組成部分,我們可以對(duì)ADO.NET中的相關(guān)對(duì)象進(jìn)行圖示理解,如圖5-3所示的是ADO.NET中數(shù)據(jù)庫(kù)對(duì)象的關(guān)系圖 。 我們可以用趣味形象化的方式理解ADO.NET對(duì)象模型的各個(gè)部分,如圖5-4所示,可以看出這些對(duì)象所處的地位和對(duì)象間的邏輯關(guān)系。l 數(shù)據(jù)庫(kù)好比水源,存儲(chǔ)了大量的數(shù)據(jù)。l Connection好比伸入水中的進(jìn)水籠頭,保持與水的接觸,只有它與水進(jìn)行了“連

8、接”,其他對(duì)象才可以抽到水。l Command則像抽水機(jī),為抽水提供動(dòng)力和執(zhí)行方法,通過(guò)“水龍頭”,然后把水返給上面的“水管”。DataAdapter、DataReader就像輸水管,擔(dān)任著水的傳輸任務(wù),并起著橋梁的作用。DataAdapter 像一根輸水管,通過(guò)發(fā)動(dòng)機(jī),把水從水源輸送到水庫(kù)里進(jìn)行保存。DataReader 也是一種水管,和DataAdapter不同的是,DataReader不把水輸送到水庫(kù)里面,而是單向地直接把水送到需要水的用戶(hù)那里或田地里,所以要比在水庫(kù)中轉(zhuǎn)一下更快更高效。 l DataSet則是一個(gè)大水庫(kù),把抽上來(lái)的水按一定關(guān)系的池子進(jìn)行存放。即使撤掉“抽水裝置”(斷開(kāi)連

9、接,離線(xiàn)狀態(tài)),也可以保持“水”的存在。這也正是ADO.NET的核心。l DataTable則像水庫(kù)中的每個(gè)獨(dú)立的水池子,分別存放不同種類(lèi)的水。一個(gè)大水庫(kù)由一個(gè)或多個(gè)這樣的水池子組成。重點(diǎn)提示:釋放數(shù)據(jù)庫(kù)連接是數(shù)據(jù)庫(kù)編程中非常重要的操作,作為數(shù)據(jù)庫(kù)價(jià)格的核心因素并發(fā)連接數(shù)是數(shù)據(jù)庫(kù)的寶貴資源,因此在使用數(shù)據(jù)庫(kù)連接對(duì)象時(shí),應(yīng)保證應(yīng)用程序在最短時(shí)間釋放連接。 數(shù)據(jù)庫(kù)程序設(shè)計(jì)的步驟:1.創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象并打開(kāi)SqlConnection conn = new SqlConnection();conn.ConnectionString = Data Source = .SQL2005; + Init

10、ial Catalog = study;Integrated Security = true; conn.Open();2.創(chuàng)建數(shù)據(jù)庫(kù)操作的命令對(duì)象,并初始化SqlCommand cmd = new SqlCommand();/ cmd.Connection = conncmd.CommandType = CommandType.Text;數(shù)據(jù)庫(kù)程序設(shè)計(jì)的步驟:3.創(chuàng)建操作句柄并賦值給命令對(duì)象 string sql = “select userCname,userPsw from users where userName=user and userPsw=pwd”; SqlParameter

11、parameters = new SqlParameter new SqlParameter(user, textBox1.Text), new SqlParameter(pwd, textBox2.Text) ; cmd.CommandText = sql; cmd.Parameters.AddRange(parameters);數(shù)據(jù)庫(kù)程序設(shè)計(jì)的步驟:4.通過(guò)適配器對(duì)象將在線(xiàn)數(shù)據(jù)賦值給離線(xiàn)數(shù)據(jù)集 DataSet shuju = new DataSet();/新建一個(gè)數(shù)據(jù)庫(kù) SqlDataAdapter adt = new SqlDataAdapter(); adt.SelectCommand = cmd; adt.Fill(shuju, use

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論