C#程序設(shè)計與開發(fā)第13章.ppt_第1頁
C#程序設(shè)計與開發(fā)第13章.ppt_第2頁
C#程序設(shè)計與開發(fā)第13章.ppt_第3頁
C#程序設(shè)計與開發(fā)第13章.ppt_第4頁
C#程序設(shè)計與開發(fā)第13章.ppt_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1,第13章 ADO.NET,在基于.NET Framework開發(fā)的應(yīng)用程序中,如果要訪問數(shù)據(jù)庫,使用ADO.NET是目前的最佳選擇。ADO.NET是與C#和.NET Framework一起使用的類集的名稱,用于以關(guān)系型的、面向表的格式訪問數(shù)據(jù),例如,可以訪問Microsoft SQL Server數(shù)據(jù)庫、Oracle數(shù)據(jù)庫等關(guān)系型數(shù)據(jù)庫,但也可訪問非關(guān)系數(shù)據(jù)源。ADO.NET被集成到.NET Framework,它可用于任何.NET語言。使用ADO.NET可以更容易地實(shí)現(xiàn)對關(guān)系和非關(guān)系數(shù)據(jù)的訪問,并且ADO.NET統(tǒng)一了XML和關(guān)系數(shù)據(jù)訪問,支持Internet上的多層應(yīng)用程序,與上一代技

2、術(shù)相比,ADO.NET可以擴(kuò)充以支持更多的數(shù)據(jù)源。 本章將會介紹ADO.NET的工作原理,并介紹如何使用ADO.NET中的基本類建立應(yīng)用程序與數(shù)據(jù)庫的連接、如何檢索并顯示數(shù)據(jù)庫中的數(shù)據(jù)、以及如何更新數(shù)據(jù)庫中的數(shù)據(jù)(包括添加、修改和刪除數(shù)據(jù)),另外,還將介紹參數(shù)化查詢技術(shù),2,本章學(xué)習(xí)要點(diǎn),了解ADO.NET的工作原理 以多種方式創(chuàng)建數(shù)據(jù)庫連接 使用OleDbDataAdapter類 理解并學(xué)會使用DataSet 定位和查詢數(shù)據(jù)庫中的數(shù)據(jù) 參數(shù)化查詢技術(shù) 對輸入數(shù)據(jù)進(jìn)行檢查 更新數(shù)據(jù)庫中的數(shù)據(jù),3,13.1 解決方案,本章完整的解決方案包含一個主窗體,主窗體的作用是允許用戶在表中定位和查看記錄,

3、并且能夠添加、修改和刪除記錄。 當(dāng)加載該解決方案的窗體時,將會執(zhí)行一系列語句建立程序和數(shù)據(jù)庫“企業(yè)人事管理.mdb”的連接。運(yùn)行后,第一個記錄將會顯示在窗體上,13.2 數(shù)據(jù)庫基礎(chǔ),數(shù)據(jù)庫是指以一定的組織形式存放在計算機(jī)存儲介質(zhì)上的相互關(guān)聯(lián)的數(shù)據(jù)的集合。例如,把一個企業(yè)所有員工的基本信息、檔案信息、考勤信息、工資信息等數(shù)據(jù)有序地組織起來,存儲在計算機(jī)磁盤上,就構(gòu)成了一個數(shù)據(jù)庫。 數(shù)據(jù)庫系統(tǒng)是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫以后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶組成。數(shù)據(jù)庫管理系統(tǒng)是位于用戶和操作系統(tǒng)之間的一個數(shù)據(jù)管理軟件,用戶及其應(yīng)用程序正是通過數(shù)據(jù)庫

4、管理系統(tǒng)建立、操作和管理數(shù)據(jù)庫的。Microsoft Access、Microsoft SQL Server、IBM的DB2、以及Oracle公司的Oracle等都是常見的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品。,4,13.3 創(chuàng)建數(shù)據(jù)庫連接,要使用ADO.NET檢索和操作數(shù)據(jù)庫中的數(shù)據(jù),必須首先創(chuàng)建應(yīng)用程序和數(shù)據(jù)庫的連接。在建立連接后,就可以通過連接向數(shù)據(jù)庫發(fā)送操作命令。操作命令由一個被稱為提供器的軟件組件進(jìn)行處理。提供器根據(jù)接收到的命令,對數(shù)據(jù)庫進(jìn)行檢索或更新操作,如果執(zhí)行的操作有返回結(jié)果,提供器再把結(jié)果返回給數(shù)據(jù)庫應(yīng)用程序。,5,13.3.1 創(chuàng)建連接的類,ADO.NET提供了幾個專門用于創(chuàng)建數(shù)據(jù)庫連接的類

5、,包括OleDbConnection類、SqlConnection類以及OdbcConnection類等。其中,OleDbConnection類可以用于創(chuàng)建應(yīng)用程序與多種類型數(shù)據(jù)庫的連接,例如與Microsoft Access、Microsoft SQL Server、Oracle等數(shù)據(jù)庫的連接; SqlConnection類可以創(chuàng)建只處理Microsoft SQL Server數(shù)據(jù)庫,但性能優(yōu)良的連接;OdbcConnection類用于創(chuàng)建到ODBC數(shù)據(jù)源的連接。下面只對前兩者進(jìn)行介紹。 1OleDbConnection類 2SqlConnection類,6,13.3.2 以多種方式創(chuàng)建連接

6、,本節(jié)將演示怎樣通過數(shù)據(jù)窗體向?qū)Ш腿绾我跃幊谭绞絼?chuàng)建數(shù)據(jù)庫連接,在本書的下一章中將會介紹如何使用工具箱中的控件創(chuàng)建數(shù)據(jù)庫連接。 1通過數(shù)據(jù)窗體向?qū)?chuàng)建數(shù)據(jù)庫連接 2以編程方式創(chuàng)建數(shù)據(jù)庫連接,7,13.4 使用數(shù)據(jù)適配器,創(chuàng)建數(shù)據(jù)庫連接之后,接下來要做的就是通過連接發(fā)送操作命令來檢索數(shù)據(jù)庫。通過連接檢索數(shù)據(jù)可以采用以下兩種方式之一: 使用DataReader類 使用OleDbDataAdapter類,8,13.4.1 OleDbDataAdapter類及其作用,本節(jié)首先介紹OleDbDataAdapter類在數(shù)據(jù)庫訪問中的作用,然后介紹該類的常用成員。 OleDbDataAdapter包含下列常

7、用成員 SelectCommand屬性 InsertCommand屬性 UpdateCommand屬性 DeleteCommand屬性 ableMappings屬性 Fill方法 RowUpdating事件 RowUpdated事件,9,13.4.2 OleDbCommand,在使用OleDbDataAdapter訪問和操作數(shù)據(jù)庫時,需要用到該類的SelectCommand、InsertCommand、UpdateCommand和DeleteCommand屬性,它們都屬于OleDbCommand類型。 OleDbCommand類包含了下列成員: 1公共屬性 2公共方法,10,13.4.4 表映

8、射,在生成DataSet時,OleDbDataAdapter會把DataSet中的第一個表默認(rèn)命名為Table,第二個表命名為Table1,依次類推。但是,我們可用一個更加直觀的名稱來命名表。為此可使用DataTableMapping類,它包含如下的屬性: ColumnMappings屬性 DataSetTable屬性 SourceTable屬性,11,13.5 DataSet,DataSet類是ADO.NET的主要成員之一,它是從數(shù)據(jù)庫中檢索到的數(shù)據(jù)在內(nèi)存中的緩存,代表了一個或多個數(shù)據(jù)庫表中數(shù)據(jù)的非連接視圖。DataSet具有的功能有: 可以根據(jù)一個或者多個列的內(nèi)容對DataSet中的數(shù)據(jù)進(jìn)

9、行排序。 可以對DataSet中的行進(jìn)行搜索,并能根據(jù)指定的標(biāo)準(zhǔn)搜索特定的行。 DataSet可以保存和管理具有層次結(jié)構(gòu)的數(shù)據(jù)。例如,可以通過配置DataSet來執(zhí)行具有一對多關(guān)系的多個表上的操作。,12,13.6 更新DataTable,更新DataSet或組成DataSet的DataTable中的數(shù)據(jù)之后,更新并不會自動保存到數(shù)據(jù)庫中,還需要執(zhí)行相應(yīng)的方法將更新保存到數(shù)據(jù)庫中。本節(jié)首先介紹如何向DataTable添加記錄以及如何修改和刪除DataTable中的記錄,本章的最后一節(jié)將介紹如何把更新保存到數(shù)據(jù)庫中,13,13.7 參數(shù)化查詢,在本章前面已經(jīng)介紹了如何使用SQL SELECT語句

10、從數(shù)據(jù)庫表返回所有記錄。但是,如果只想檢索某個記錄或者某些符合條件的記錄,并且希望能夠根據(jù)用戶的輸入檢索這些記錄,這時就需要動態(tài)創(chuàng)建一個SQL語句從DataTable中選中特定的記錄。 要動態(tài)選擇記錄,需要創(chuàng)建參數(shù)化查詢語句。參數(shù)化查詢(parameterized query)從概念上講類似于接受一個或者多個參數(shù)的函數(shù)或者子過程,就像給函數(shù)的參數(shù)傳遞不同的值一樣,也可以為SQL語句的參數(shù)提供不同的值。 要創(chuàng)建參數(shù)化查詢,首先要創(chuàng)建一個SQL SELECT語句,但是WHERE子句的具體內(nèi)容是在運(yùn)行時動態(tài)創(chuàng)建的。,14,13.8 將更新保存到數(shù)據(jù)庫,在本章的解決方案中,已經(jīng)修改了包含在DataSet中的DataTable。但是,由于DataSet及其中的DataTable處于非連接模式,因此必須使用OleDbDataAdapter顯式地把更新保存到數(shù)據(jù)庫中。 將更新保存到數(shù)據(jù)庫中需要使用如下所示的OleDbDataAdapter的成員: OleDbDataAdapter的Update方法為DataSet中每個已插入、已更新或已刪除的行調(diào)用相應(yīng)的INSERT、UPDATE或D

溫馨提示

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

最新文檔

評論

0/150

提交評論