第4章使用ADONET訪問數(shù)據(jù)庫_第1頁
第4章使用ADONET訪問數(shù)據(jù)庫_第2頁
第4章使用ADONET訪問數(shù)據(jù)庫_第3頁
第4章使用ADONET訪問數(shù)據(jù)庫_第4頁
第4章使用ADONET訪問數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第4章 使用(shyng)ADO.NET訪問數(shù)據(jù)庫寧云智 劉志成共三十五頁本章(bn zhn)學習導航共三十五頁本章(bn zhn)學習要點ADO.NET概述數(shù)據(jù)庫連接對象(duxing)Connection數(shù)據(jù)庫操作命令對象Command數(shù)據(jù)讀取器對象DataReader 數(shù)據(jù)適配器對象DataAdapter數(shù)據(jù)集對象DataSet數(shù)據(jù)表對象DataTable對象數(shù)據(jù)行對象DataRow對象使用直接連接訪問對象更新數(shù)據(jù)使用斷開式訪問對象更新數(shù)據(jù)共三十五頁任務1完成(wn chng)數(shù)據(jù)庫連接 通過(tnggu)使用Connection 對象連接數(shù)據(jù)庫任務目標 使用OleDbConnectio

2、n對象 和SqlConnection對象 連接訪問 數(shù)據(jù)庫知識要點 共三十五頁任務1完成(wn chng)數(shù)據(jù)庫連接ADO。NET簡介(jin ji) 添加標題文字添加標題文字ADO.NET(即ActiveX Data Objects.NET)是微軟.NET平臺中的一種最新的數(shù)據(jù)庫訪問技術。 ADO.NET對象可分為兩大類:一類是與數(shù)據(jù)庫直接連接的聯(lián)機對象,這類對象其中包含了Command(命令)對象、DataReader(數(shù)據(jù)讀取器)對象和DataAdapter(數(shù)據(jù)適配器)對象,通過這些類對象可以在應用程序里完成連接數(shù)據(jù)源以及數(shù)據(jù)維護等相關操作。 另一類則是與數(shù)據(jù)源無關的斷開式訪問對象,像

3、DataSet(數(shù)據(jù)集)對象、DataRelation對象等。 共三十五頁任務(rn wu)1完成數(shù)據(jù)庫連接ADO。NET對象(duxing)組織結構 添加標題文字添加標題文字共三十五頁任務1完成(wn chng)數(shù)據(jù)庫連接 .NET Framework數(shù)據(jù)(shj)提供程序添加標題文字添加標題文字SQL Server .NET Framework數(shù)據(jù)提供程序OLE DB Framework數(shù)據(jù)提供程序Oracle .NET Framework數(shù)據(jù)提供程序ODBC .NET Framework數(shù)據(jù)提供程序 .NET數(shù)據(jù)提供程序個主要組件組成Connection(連接)對象:用于連接到數(shù)據(jù) Co

4、mmand對象:用于執(zhí)行針對數(shù)據(jù)源的命令并且檢索DataReader、DataSet,或者用于執(zhí)行針對數(shù)據(jù)源的一個插入、刪除或修改操作 DataReader對象:通過一個打開的數(shù)據(jù)庫連接,能夠快速、前向、只讀地訪問數(shù)據(jù)流,每次在內(nèi)存中只處理一行數(shù) DataAdapter對象:用于從數(shù)據(jù)源產(chǎn)生上個DataSet,并且更新數(shù)據(jù)源 共三十五頁任務1完成(wn chng)數(shù)據(jù)庫連接 SQL Server .NET Framework數(shù)據(jù)提供(tgng)程序添加標題文字添加標題文字SQL Server .NET Framework數(shù)據(jù)提供程序的類位于System.Data.SqlClient命名空間中,

5、這些類以“Sql”作為前綴,建立Connection對象的類稱為SqlConnection,建立Command對象的類稱為SqlCommand,建立DataAdapter對象的類稱為SqlDataAdapter,建立DataReader對象的類稱為SqlDataReader OLE DB Framework數(shù)據(jù)提供程序OLE DB Framework數(shù)據(jù)提供程序的類位于System .Data .OleDb命名空間中,這些類以OleDb作為前綴,建立Connection對象的類稱為OleDbConnection,建立Command對象的類稱為OleDbCommand,建立DataAdapter

6、對象的類稱為OleDbDataAdapter,建立DataReader對象的類稱為OleDbDataReader 共三十五頁任務(rn wu)1完成數(shù)據(jù)庫連接數(shù)據(jù)庫應用程序的開發(fā)(kif)步驟添加標題文字添加標題文字第1步:創(chuàng)建數(shù)據(jù)庫。第2步:使用Connection對象連接數(shù)據(jù)庫。第3步:使用Command對象對數(shù)據(jù)源執(zhí)行SQL命令并返回數(shù)據(jù)。第4步:使用DataReader和DataSet對象讀取和處理數(shù)據(jù)源的數(shù)據(jù)。共三十五頁任務1完成(wn chng)數(shù)據(jù)庫連接OleDbConnection對象(duxing)添加標題文字添加標題文字和Access數(shù)據(jù)庫連接時,在引用System.Dat

7、a.OleDb命名空間后,與數(shù)據(jù)庫的連接就要用到OleDbConnection對象 定義語句為:OleDbConnection Con = new OleDbConnection(provider=microsoft.jet.oledb.4.0;data source=C:train.mdb);OleDbConnection對象應用例子使用OleDbConnection對象連接Access數(shù)據(jù)庫 共三十五頁任務(rn wu)1完成數(shù)據(jù)庫連接OleDbConnection對象應用(yngyng)例子添加標題文字添加標題文字主要代碼如下:共三十五頁任務(rn wu)1完成數(shù)據(jù)庫連接OleDbCon

8、nection對象應用(yngyng)例子添加標題文字添加標題文字運行結果共三十五頁任務(rn wu)1完成數(shù)據(jù)庫連接SqlConnection對象(duxing)添加標題文字添加標題文字SqlConnection對象是連接SQL Server類型數(shù)據(jù)源的主要方式,通過相關屬性和方法,實現(xiàn)對連接參數(shù)的設置、讀取以及相關連接操作 定義語句為: SqlConnection Con = new SqlConnection(); Con.ConnectionString = server=.sql2005;database=網(wǎng)上書店;integrated security=sspi; SqlConne

9、ction對象應用例子使用SqlConnection對象連接SQL Server數(shù)據(jù)庫 共三十五頁任務(rn wu)1完成數(shù)據(jù)庫連接SqlConnection對象(duxing)應用例子添加標題文字添加標題文字主要代碼如下:共三十五頁任務(rn wu)1完成數(shù)據(jù)庫連接SqlConnection對象應用(yngyng)例子添加標題文字添加標題文字運行結果共三十五頁課堂(ktng)實踐1應用OleDbConnection對象建立(jinl)與train數(shù)據(jù)庫(Access)的連接 。任務1應用SqlConnection對象建立與網(wǎng)上書店數(shù)據(jù)庫(SQL Server)的連接。 任務2共三十五頁任務(

10、rn wu)2執(zhí)行數(shù)據(jù)庫操作命令對象Command 使用Command對象對數(shù)據(jù)源執(zhí)行查詢、添加(tin ji)、刪除和修改 操作 任務目標 運用OleDbCommand對象 和SqlCommand對象完成對各種數(shù)據(jù)源的相關操作 。 知識要點 共三十五頁任務(rn wu)2執(zhí)行數(shù)據(jù)庫操作命令對象Command OleDbCommand對象(duxing)添加標題文字Command對象要與采用的數(shù)據(jù)庫連接方式相匹配,相對于OleDbConnection,采用的Command對象是OleDbCommand對象 使用OleDbCommand對象來執(zhí)行各個SQL語句,其語法格式如下。格式1:OleDb

11、Connection 對象名稱= new OleDbConnection(SQL語句 , Connection對象);格式2:OleDbConnection 對象名稱= new OleDbConnection();若使用格式2來建立OleDbCommand對象,那么必須使用它所提供的屬性來指定所要執(zhí)行的SQL語句及要連接的Connection對象 OleDbCommand對象應用例子使用OleDbCommand對象更新Access數(shù)據(jù)庫數(shù)據(jù) 使用Access數(shù)據(jù)庫時,在更新數(shù)據(jù)時,一定要關閉Access數(shù)據(jù)庫,否則更新不成功。 共三十五頁任務2執(zhí)行(zhxng)數(shù)據(jù)庫操作命令對象Command

12、 SqlCommand對象(duxing)添加標題文字SqlCommand對象用來對SQL Server數(shù)據(jù)庫執(zhí)行操作命令 SqlCommand對象的主要方法 :1ExecuteNonQuery方法 2ExecuteReader方法 3ExecuteScalar方法 SqlCommand對象應用例子使用SqlCommand對象更新數(shù)據(jù)庫數(shù)據(jù) 共三十五頁課堂(ktng)實踐2利用SqlCommand對象的ExecuteScalar方法獲得(hud)訂單表中總金額之和。 任務1利用OleDbCommand對象的ExecuteScalar方法獲得列車時刻表數(shù)據(jù)庫中tx_train_province(

13、省份表)表中的記錄總數(shù)。 任務2共三十五頁任務(rn wu)3數(shù)據(jù)查詢 通過(tnggu)使用相關對象獲取想要的數(shù)據(jù)任務目標 運用DataReader對象從數(shù)據(jù)源中獲取數(shù)據(jù)進行處理;通過DataSet對象將數(shù)據(jù)存放在內(nèi)存中進行處理 知識要點 共三十五頁任務3數(shù)據(jù)(shj)查詢 DataReader(數(shù)據(jù)讀取器)可以順序地從查詢結果集中讀取記錄,它的特點是單向向前,速度快,占用內(nèi)存少。使用DataReader對象無論在系統(tǒng)開銷還是在性能方面都很有效,它在任何時候只緩存一條記錄,并且沒有將整個結果集載入內(nèi)存中,從而避免了使用大量內(nèi)存,大大提高了系統(tǒng)性能。DataReader對象最重要的方法就是Re

14、ad,每次調用Read方法只能(zh nn)讀取一條記錄,前進到下一條記錄,如果讀取到記錄則返回True,否則返回False 。使用GetValues方法獲取當前行中的所有屬性列,也可以用GetValue方法獲取指定序號處的列值。 DataReader對象 共三十五頁任務(rn wu)3數(shù)據(jù)查詢 使用(shyng)SqlDataReader對象讀取數(shù)據(jù) DataReader對象應用例子 共三十五頁任務(rn wu)3數(shù)據(jù)查詢 代碼(di m)如下: DataReader對象應用例子 共三十五頁任務3數(shù)據(jù)(shj)查詢 DataAdapter對象(數(shù)據(jù)適配器對象)是一種用來(yn li)充當數(shù)據(jù)

15、集與實際數(shù)據(jù)源之間橋梁的對象。 使用數(shù)據(jù)適配器在應用程序和數(shù)據(jù)庫之間通信,數(shù)據(jù)適配器可以從數(shù)據(jù)庫將數(shù)據(jù)讀入數(shù)據(jù)集,也可以將數(shù)據(jù)集中已更改的數(shù)據(jù)寫回數(shù)據(jù)庫。 DataAdapter對象有兩種類型,分別是OleDbDataAdapter和SqlDataAdapter,SqlDataAdapter對象用于特定的SQL Server數(shù)據(jù)庫,OleDbDataAdapter對象則用于由OLEDB提供程序公開的任何數(shù)據(jù)源。 DataAdapter對象 共三十五頁任務3數(shù)據(jù)(shj)查詢 DataSet(數(shù)據(jù)集對象)是數(shù)據(jù)庫數(shù)據(jù)的內(nèi)存駐留表示形式(xngsh),無論數(shù)據(jù)源是什么,都會提供一致的關系編程模型。

16、 它可以用于多種不同的數(shù)據(jù)源、用于XML數(shù)據(jù),或用于管理應用程序本地的數(shù)據(jù)。一個DataSet對象表示包括相關表、約束和表間關系在內(nèi)的整個數(shù)據(jù)集。DataSet對象是支持ADO.NET的斷開式或分布式數(shù)據(jù)方案的核心對象 DataSet對象 共三十五頁課堂(ktng)實踐3使用(shyng)OleDbDataReader對象讀取列車時刻表數(shù)據(jù)庫中tx_train_province(省份表)表的數(shù)據(jù)。 任務1使用SqlDataReader對象讀取網(wǎng)上書店數(shù)據(jù)庫中圖書表的數(shù)據(jù)。 任務2使用SqlDataAdapter對象將網(wǎng)上書店數(shù)據(jù)庫中圖書表的數(shù)據(jù)填充到Dataset。 任務3共三十五頁任務(rn

17、 wu)4數(shù)據(jù)更新 實現(xiàn)對數(shù)據(jù)進行(jnxng)新增、刪除、修改的操作任務目標 運用SQL命令更新數(shù)據(jù)和利用數(shù)據(jù)集DataSet更新數(shù)據(jù) 知識要點 共三十五頁任務4數(shù)據(jù)(shj)更新 1使用SQL命令新增數(shù)據(jù)(shj) 使用SQL命令新增數(shù)據(jù)也就是使用INSERT命令語句來完成數(shù)據(jù)的新增 。2使用SQL命令修改數(shù)據(jù) 使用SQL命令修改數(shù)據(jù)也就是使用UPDATE命令語句來完成數(shù)據(jù)的修改 。3使用SQL命令刪除數(shù)據(jù) 使用SQL命令刪除數(shù)據(jù)也就是使用DELETE命令語句來完成數(shù)據(jù)的刪除 。使用SQL命令更新數(shù)據(jù) 共三十五頁任務4數(shù)據(jù)(shj)更新 1DataTable對象 DataTable 表示一

18、個內(nèi)存中數(shù)據(jù)表,可以獨立創(chuàng)建和使用,也可以由其他 .NET Framework 對象使用,最常見的情況是作為 DataSet 的成員使用??梢允褂孟鄳?DataTable 構造函數(shù)創(chuàng)建 DataTable 對象??梢酝ㄟ^使用 Add 方法將其添加(tin ji)到 DataTable 對象的 Tables 集合中,將其添加到 DataSet 中。 2DataRow對象 DataRow表示 DataTable 中的一行數(shù)據(jù)。 3使用SQL命令刪除數(shù)據(jù) 。利用數(shù)據(jù)集DataSet更新數(shù)據(jù)共三十五頁任務4數(shù)據(jù)(shj)更新 3利用DataSet新增數(shù)據(jù) 調用數(shù)據(jù)表的NewRow()方法來添加(ti

19、n ji)一個新的數(shù)據(jù)行。 4利用DataSet修改數(shù)據(jù) 利用DataTable對象的Rows屬性來修改數(shù)據(jù)行數(shù)據(jù) 。5利用DataSet刪除數(shù)據(jù) 利用DataSet刪除數(shù)據(jù)就是利用DataRow對象的Delete方法刪除數(shù)據(jù)集中的行,并利用DataTable對象的AcceptChanges方法刪除數(shù)據(jù)庫中的數(shù)據(jù) 。利用數(shù)據(jù)集DataSet更新數(shù)據(jù)共三十五頁課堂(ktng)實踐4使用SQL命令對網(wǎng)上書店數(shù)據(jù)庫中的圖書表進行新增、修改、刪除(shnch)操作。 任務1使用斷開式訪問對象對網(wǎng)上書店數(shù)據(jù)庫中的圖書類型表進行新增、修改、刪除操作。 任務2共三十五頁本章(bn zhn)小結 本章(bn zhn)學習內(nèi)容本章主要學習了如下內(nèi)容:ADO.NET基礎知識;ADO.NET

溫馨提示

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

評論

0/150

提交評論