在斷開(kāi)連接的環(huán)境中編輯和更新數(shù)據(jù)_第1頁(yè)
在斷開(kāi)連接的環(huán)境中編輯和更新數(shù)據(jù)_第2頁(yè)
在斷開(kāi)連接的環(huán)境中編輯和更新數(shù)據(jù)_第3頁(yè)
在斷開(kāi)連接的環(huán)境中編輯和更新數(shù)據(jù)_第4頁(yè)
在斷開(kāi)連接的環(huán)境中編輯和更新數(shù)據(jù)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

在斷開(kāi)連接的環(huán)境中編輯和更新數(shù)據(jù)第1頁(yè),共23頁(yè),2023年,2月20日,星期四體驗(yàn)第2頁(yè),共23頁(yè),2023年,2月20日,星期四DataAdapter簡(jiǎn)介在ADO.NET中,DataSet是數(shù)據(jù)在內(nèi)存中的表示形式,它提供了獨(dú)立于數(shù)據(jù)源的關(guān)系編程模型。

第3頁(yè),共23頁(yè),2023年,2月20日,星期四.NETFramework中的DataAdapter類(lèi)

.NETFramework2.0包括DataAdapter類(lèi),如下下表所示。DataAdapter類(lèi) 描述System.Data.SqlClient.SqlDataAdapterSQLServer.NETFramework數(shù)據(jù)提供程序DataAdapter類(lèi)System.Data.OleDbClient.OleDbDataAdapterOLEDB.NETFramework數(shù)據(jù)提供程序DataAdapter類(lèi)System.Data.Odbc.OdbcDataAdapterODBC.NETFramework數(shù)據(jù)提供程序DataAdapter類(lèi)System.Data.OracleClient.OracleDataAdapterOracle.NETFramework數(shù)據(jù)提供程序DataAdapter類(lèi)第4頁(yè),共23頁(yè),2023年,2月20日,星期四通過(guò)VisualStudio2005創(chuàng)建DataAdapter通過(guò)編程方式創(chuàng)建DataAdapter第5頁(yè),共23頁(yè),2023年,2月20日,星期四通過(guò)編程方式創(chuàng)建DataAdapterSqlDataAdapter構(gòu)造函數(shù)支持四種重載。此時(shí)所使用的重載SqlDataAdapter(testCommand)允許在構(gòu)造函數(shù)中指定帶有有效連接的命令。其他三種可用的重載如下。SqlDataAdapter():設(shè)置SqlDataAdapter的一個(gè)空實(shí)例SqlDataAdapter(stringcommandText,SqlConnectionconnection):允許指定用于填充DataSet/DataTable的命令(作為字符串)以及填充時(shí)將用到的連接SqlDataAdapter(stringcommandText,stringconnectionString):允許將命令和相關(guān)連接都作為字符串來(lái)指定;第6頁(yè),共23頁(yè),2023年,2月20日,星期四DataAdapter的屬性DataAdapter所提供的主要屬性及其描述如下表所示。屬性描述SelectCommand在數(shù)據(jù)源中檢索數(shù)據(jù)的數(shù)據(jù)命令I(lǐng)nsertCommand在數(shù)據(jù)源中插入數(shù)據(jù)的數(shù)據(jù)命令UpdateCommand在數(shù)據(jù)源中更新數(shù)據(jù)的數(shù)據(jù)命令DeleteCommand在數(shù)據(jù)源中刪除數(shù)據(jù)的數(shù)據(jù)命令TableMappingsDataTableMapping對(duì)象的集合,決定DataSet中的行與數(shù)據(jù)源之間的關(guān)系UpdateBatchSize決定批進(jìn)程支持,指出在批處理中可執(zhí)行的命令的數(shù)量第7頁(yè),共23頁(yè),2023年,2月20日,星期四DataAdapter的方法使用DataAdapter的Fill()方法填充DataSetDataAdapter有兩個(gè)重要的方法:Fill()和Update()。前者從數(shù)據(jù)源把數(shù)據(jù)加載至DataSet,后者把數(shù)據(jù)從DataSet傳回?cái)?shù)據(jù)源。使用DataAdapter的Update()方法更新DataSet第8頁(yè),共23頁(yè),2023年,2月20日,星期四更新數(shù)據(jù)時(shí)的狀態(tài)管理在連接、獲取、斷開(kāi)、修改、重新連接和持久保存更改等一系列過(guò)程中,可能需要考慮很多事情??赡苄枰獩Q定插入、刪除或更新某些行其他用戶可能同時(shí)保存其更改,您在DataSet中所保存的查詢(xún)數(shù)據(jù)可能已無(wú)效為新插入的記錄所生成的鍵值可能不正確在設(shè)法進(jìn)行更新之后,可能需要將當(dāng)前數(shù)據(jù)的刷新版本取回應(yīng)用程序第9頁(yè),共23頁(yè),2023年,2月20日,星期四更新數(shù)據(jù)時(shí)的狀態(tài)管理DataRowState枚舉的各種值及其相應(yīng)的含義如下表所示。常量值描述Detached1在任何給定時(shí)間,一個(gè)DataRow最多只能連接到一個(gè)

DataTable。如果未連接到任何

DataTable,則該行的狀態(tài)為脫離UnChanged2此行從數(shù)據(jù)源獲取,并且未進(jìn)行任何更改Added4此行從數(shù)據(jù)源獲取,并且已添加到DataTable中。在更新期間,DataAdapter將對(duì)其執(zhí)行InsertCommandDeleted8此行從數(shù)據(jù)源獲取,然后從DataTable中刪除。在更新期間,DataAdapter將對(duì)其執(zhí)行DeleteCommandModified16此行從數(shù)據(jù)源獲取,并且已經(jīng)被修改過(guò)。在更新期間,數(shù)據(jù)適配器將對(duì)其執(zhí)行UpdateCommand第10頁(yè),共23頁(yè),2023年,2月20日,星期四創(chuàng)建并使用SqlBulkCopy的步驟如下。用SqlBulkCopy移動(dòng)大量數(shù)據(jù)首先添加一個(gè)新的控制臺(tái)應(yīng)用程序,并將其命名為SqlBulkCopy。第三行“張宇”保持不變此應(yīng)用程序的目的是演示在兩個(gè)相同結(jié)構(gòu)的表之間可以相當(dāng)快地復(fù)制數(shù)據(jù)由于該應(yīng)用程序操作的對(duì)象是同一個(gè)數(shù)據(jù)庫(kù),因此只需要一個(gè)連接字符串;但是,需要兩個(gè)不同的SqlConnection:一個(gè)用于SqlBulkCopy將要讀取的DataReader,另一個(gè)用于SqlBulkCopy本身應(yīng)用程序的第二部分使用SqlBulkCopy對(duì)象實(shí)例將從創(chuàng)建的DataReader讀取的數(shù)據(jù)插入員工副本表操作完成代碼示例C#代碼示例VB第11頁(yè),共23頁(yè),2023年,2月20日,星期四DataTable公開(kāi)了一系列可以由應(yīng)用程序捕獲并處理的事件。DataTable事件事件描述ColumnChanged在值被成功插入列時(shí)發(fā)生ColumnChanging在值被提交給列時(shí)發(fā)生RowChanged在成功更改DataRow之后發(fā)生RowChanging在DataRow正在更改時(shí)發(fā)生RowDeleted在表中的行被刪除后發(fā)生RowDeleting在表中的行被標(biāo)記為刪除時(shí)發(fā)生TableClearing當(dāng)表正在被清除時(shí)發(fā)生TableCleared當(dāng)表已被清除時(shí)發(fā)生TableNewRow在表中新增一行后立即發(fā)生第12頁(yè),共23頁(yè),2023年,2月20日,星期四DataColumnChangeEventArgs對(duì)象所提供三個(gè)屬性及其描述如下表所示。DataTable事件(續(xù))屬性描述Column獲取其值將要改變的DataColumn對(duì)象ProposedValue獲取或者設(shè)置目標(biāo)值。這就是要賦給列的新值。例如,在ColumnChanging事件處理程序中,可以查看ProposedValue,接受或拒絕該值的變化Row獲取其值將要改變的DataRow對(duì)象第13頁(yè),共23頁(yè),2023年,2月20日,星期四DataRowChangeEventArgs所提供的兩個(gè)屬性及其描述如下表所示。DataTable事件(續(xù))屬性描述Action獲取將要或已經(jīng)在DataRow上發(fā)生的動(dòng)作(例如,添加、修改或刪除)Row獲取將要或已經(jīng)發(fā)生動(dòng)作的DataRow對(duì)象第14頁(yè),共23頁(yè),2023年,2月20日,星期四DataTableClearTableEventHandler所提供的三個(gè)屬性及其描述如下表所示。DataTable事件(續(xù))屬性描述Table獲取正在被清除的表TableName獲取表名TableNamespace獲取給定表的命名空間。這在XML轉(zhuǎn)換中特別有用第15頁(yè),共23頁(yè),2023年,2月20日,星期四如前所述,DataTable事件可以分成以下三大類(lèi)別?;诹械模篊olumnChanging,ColumnChanged基于行的:RowChanging,RowChanged,RowDeleting,RowDeleted基于表的:TableClearing,TableCleared,TableNewRowDataTable事件(續(xù))第16頁(yè),共23頁(yè),2023年,2月20日,星期四使用GetChanges方法的時(shí)機(jī)GetChanges和Merge在DataSet中獲得更改的示例將更改合并到DataSet第17頁(yè),共23頁(yè),2023年,2月20日,星期四習(xí)題1.多選題:以下關(guān)于DataAdapter對(duì)象的描述,______是正確的。A.DataAdapter對(duì)象可以用來(lái)檢查查詢(xún)結(jié)果B.DataAdapter對(duì)象可以作為數(shù)據(jù)庫(kù)和斷開(kāi)連接對(duì)象之間的網(wǎng)橋C.DataAdapter對(duì)象可提取查詢(xún)結(jié)果以便脫機(jī)時(shí)使用D.DataAdapter對(duì)象可以把脫機(jī)使用時(shí)所做的更改提交到數(shù)據(jù)庫(kù)中 第18頁(yè),共23頁(yè),2023年,2月20日,星期四習(xí)題(續(xù))2.多選題:DataSet和DataAdapter之間的區(qū)別是______。A.DataSet在斷開(kāi)連接的緩存中存儲(chǔ)數(shù)據(jù)B.DataAdapter對(duì)象是DataSet和數(shù)據(jù)源之間檢索或保存數(shù)據(jù)的橋梁C.DataSet公開(kāi)由表、行和列所組成的分層對(duì)象模型D.DataAdapter類(lèi)表示一組數(shù)據(jù)庫(kù)命令以及可用做填充DataSet和更新數(shù)據(jù)源的數(shù)據(jù)庫(kù)連接 第19頁(yè),共23頁(yè),2023年,2月20日,星期四習(xí)題(續(xù))3.多選題:方法_____能更有效地使用DataAdapter填充DataSet。A.使用與DataAdapter所傳入的數(shù)據(jù)結(jié)構(gòu)相同的類(lèi)型化DataSetB.在填充DataSet之前,調(diào)用BeginLoadData()方法C.在使用多個(gè)有相同連接的DataAdapter填充DataSet之前,顯式地打開(kāi)連接D.使用DataAdapter對(duì)象的TableMappings集合第20頁(yè),共23頁(yè),2023年,2月20日,星期四習(xí)題(續(xù))4.為了將數(shù)據(jù)更改持久地保存到數(shù)據(jù)源,將按______順序調(diào)用各種方法。(1)調(diào)用Update()方法(2)調(diào)用GetChanges()方法(3)調(diào)用Merge()方法(4)調(diào)用AcceptChanges()方法A.(1)(2)(3)(4)B.(4)(1)(2)(3)C.(2)(3)(1)(4)D.(1)(3)(4)(2)

第21頁(yè),共23頁(yè),2023年,2月20日,星期四習(xí)題(續(xù))5.準(zhǔn)備將記錄從一個(gè)數(shù)據(jù)庫(kù)傳輸?shù)搅硪粋€(gè)數(shù)據(jù)庫(kù)。只需確保源數(shù)據(jù)庫(kù)是MicrosoftSQLServer,就能使用SqlBulkCopy類(lèi)來(lái)傳輸記錄嗎?第22

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論