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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、Provider中包括Connection對象、Command對象、DataReader對象和DataAdapter 對象。Connection對象用來和數(shù)據(jù)源進行連接;Command對象可以用來從數(shù)據(jù)庫中返回數(shù)據(jù)、修改數(shù)據(jù)或運行存儲過程;DataReader對象則提供了對數(shù)據(jù)庫的快速只讀、前向訪問功能;DataAdapter 對象是數(shù)據(jù)源和數(shù)據(jù)集DataSet對象交換數(shù)據(jù)的橋梁,它負責將數(shù)據(jù)庫中的數(shù)據(jù)填充到DataSet對象中。ADO.NET體系結構如下圖所示AJAX數(shù)據(jù)庫.NET 數(shù)據(jù)提供程序ConnectionTransactionCommandParametersDataReaderD

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

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

6、之間的關系,數(shù)據(jù)集結構如圖所示。數(shù)據(jù)集包含了用戶請求的那部分數(shù)據(jù)庫在內存中的備份。這個備份甚至能包含多個表以及表之間的關系的整個數(shù)據(jù)庫。所以對于數(shù)據(jù)集對象的訪問類似于對數(shù)據(jù)庫的訪問,即數(shù)據(jù)集提供了被訪問數(shù)據(jù)庫的非連接備份離線備份,這相當于直接給出了處理數(shù)據(jù)庫的情境,也就是說,給用戶的感覺是數(shù)據(jù)集與數(shù)據(jù)源是直接連接的。ADO.NET連接數(shù)據(jù)源機制是:首先通過數(shù)據(jù)提供程序中的Connection對象連接數(shù)據(jù)源,然后由DataAdapter對象用數(shù)據(jù)庫的數(shù)據(jù)填充數(shù)據(jù)集,并通過Command和DataReader對象對數(shù)據(jù)集中的數(shù)據(jù)進行各種操作,最后把對數(shù)據(jù)源數(shù)據(jù)的更新返回數(shù)據(jù)源,如圖1所示。這種連接

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

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

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

10、ial Catalog = study;Integrated Security = true; conn.Open();2.創(chuàng)建數(shù)據(jù)庫操作的命令對象,并初始化SqlCommand cmd = new SqlCommand();/ cmd.Connection = conncmd.CommandType = CommandType.Text;數(shù)據(jù)庫程序設計的步驟:3.創(chuàng)建操作句柄并賦值給命令對象 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ù)庫程序設計的步驟:4.通過適配器對象將在線數(shù)據(jù)賦值給離線數(shù)據(jù)集 DataSet shuju = new DataSet();/新建一個數(shù)據(jù)庫 SqlDataAdapter adt = new SqlDataAdapter(); adt.SelectCommand = cmd; adt.Fill(shuju, use

溫馨提示

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

評論

0/150

提交評論