數據庫系統課件:數據庫編程基礎_第1頁
數據庫系統課件:數據庫編程基礎_第2頁
數據庫系統課件:數據庫編程基礎_第3頁
數據庫系統課件:數據庫編程基礎_第4頁
數據庫系統課件:數據庫編程基礎_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論