![數(shù)據(jù)庫訪問技術(shù)ADONET程序設(shè)計(jì)ppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/950d70e5-fd60-4cc6-a38a-03f891b7f168/950d70e5-fd60-4cc6-a38a-03f891b7f1681.gif)
![數(shù)據(jù)庫訪問技術(shù)ADONET程序設(shè)計(jì)ppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/950d70e5-fd60-4cc6-a38a-03f891b7f168/950d70e5-fd60-4cc6-a38a-03f891b7f1682.gif)
![數(shù)據(jù)庫訪問技術(shù)ADONET程序設(shè)計(jì)ppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/950d70e5-fd60-4cc6-a38a-03f891b7f168/950d70e5-fd60-4cc6-a38a-03f891b7f1683.gif)
![數(shù)據(jù)庫訪問技術(shù)ADONET程序設(shè)計(jì)ppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/950d70e5-fd60-4cc6-a38a-03f891b7f168/950d70e5-fd60-4cc6-a38a-03f891b7f1684.gif)
![數(shù)據(jù)庫訪問技術(shù)ADONET程序設(shè)計(jì)ppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/29/950d70e5-fd60-4cc6-a38a-03f891b7f168/950d70e5-fd60-4cc6-a38a-03f891b7f1685.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫訪問技術(shù)數(shù)據(jù)庫訪問技術(shù)ADO.NET程序設(shè)計(jì)程序設(shè)計(jì)n第第1章章 以數(shù)據(jù)為中心的運(yùn)用程序和以數(shù)據(jù)為中心的運(yùn)用程序和 ADO.NETn第第2章章 銜接數(shù)據(jù)源銜接數(shù)據(jù)源n第第3章章 執(zhí)行銜接環(huán)境下的數(shù)據(jù)庫操作執(zhí)行銜接環(huán)境下的數(shù)據(jù)庫操作n第第4章章 構(gòu)建構(gòu)建 DataSet n第第5章章 運(yùn)用運(yùn)用 ADO.NET 讀取和寫入讀取和寫入 XMLn第第6章章 從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集n第第7章章 構(gòu)建和運(yùn)用構(gòu)建和運(yùn)用 ADO.NET 的的 Web 效力效力n配置配置 DataAdapter DataAdapter 以檢索信息以檢索信息n運(yùn)用運(yùn)用 DataAdapter Data
2、Adapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后臺(tái)數(shù)據(jù)源更新后臺(tái)數(shù)據(jù)源n將數(shù)據(jù)更改保管到數(shù)據(jù)源將數(shù)據(jù)更改保管到數(shù)據(jù)源n沖突處置沖突處置 第第6章章 從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集 配置配置 DataAdapter DataAdapter 以檢索信息以檢索信息 nDataAdapternXxxDataAdapter對(duì)象模型對(duì)象模型nDataAdapter 類的屬性和方法類的屬性和方法n創(chuàng)建運(yùn)用新創(chuàng)建運(yùn)用新 SELECT 語句的語句的 DataAdaptern創(chuàng)建運(yùn)用現(xiàn)有存儲(chǔ)過程的創(chuàng)建運(yùn)用現(xiàn)有存儲(chǔ)過程的 Dat
3、aAdapter6.1 配置配置 DataAdapter 以檢索信息以檢索信息 多媒體演示多媒體演示 創(chuàng)建與填充數(shù)據(jù)集創(chuàng)建與填充數(shù)據(jù)集n多媒體演示多媒體演示 創(chuàng)建和填充一個(gè)數(shù)據(jù)集的創(chuàng)建和填充一個(gè)數(shù)據(jù)集的概覽概覽DataAdapter數(shù)據(jù)源數(shù)據(jù)源數(shù)據(jù)適配器數(shù)據(jù)適配器數(shù)據(jù)表數(shù)據(jù)表數(shù)據(jù)表數(shù)據(jù)表數(shù)據(jù)集數(shù)據(jù)集數(shù)據(jù)適配器數(shù)據(jù)適配器填充填充更新更新填充填充更新更新6.1.1 DataAdapterDataAdapter續(xù)續(xù)n數(shù)據(jù)適配器是數(shù)據(jù)集與數(shù)據(jù)源交互的橋梁數(shù)據(jù)適配器是數(shù)據(jù)集與數(shù)據(jù)源交互的橋梁n使相當(dāng)于數(shù)據(jù)源本地拷貝的數(shù)據(jù)集可以與數(shù)據(jù)源使相當(dāng)于數(shù)據(jù)源本地拷貝的數(shù)據(jù)集可以與數(shù)據(jù)源之間進(jìn)展交互之間進(jìn)展交互n為
4、數(shù)據(jù)庫提供的主要兩種數(shù)據(jù)適配器為數(shù)據(jù)庫提供的主要兩種數(shù)據(jù)適配器nSqlDataAdapter:不經(jīng)過:不經(jīng)過OLEDB層直接與層直接與SQLServer交互,速度較交互,速度較OleDbDataAdapter快快nOleDbDataAdapter:適用于任何可以用:適用于任何可以用OLEDB數(shù)據(jù)數(shù)據(jù)提供者訪問的數(shù)據(jù)源提供者訪問的數(shù)據(jù)源6.1.1 DataAdapterXxxDataAdapter對(duì)象模型對(duì)象模型sp_SELECTXxxCommandSelectCommandUpdateCommandInsertCommandDeleteCommandXxxDataAdapterXxxComma
5、ndXxxCommandXxxCommandXxxConnectionsp_UPDATEsp_INSERTsp_DELETEXxxDataReader6.1.2 XxxDataAdapter對(duì)象模型對(duì)象模型XxxDataAdapter對(duì)象模型續(xù)對(duì)象模型續(xù)6.1.2 XxxDataAdapter對(duì)象模型對(duì)象模型XxxDataAdapter對(duì)象模型續(xù)對(duì)象模型續(xù)nCommand 對(duì)象對(duì)象n經(jīng)過數(shù)據(jù)適配器來讀取數(shù)據(jù)源信息的命令對(duì)象經(jīng)過數(shù)據(jù)適配器來讀取數(shù)據(jù)源信息的命令對(duì)象,并將其保管在數(shù)據(jù)適配器的,并將其保管在數(shù)據(jù)適配器的SelectCommand屬屬性中性中n經(jīng)過數(shù)據(jù)適配器可以將數(shù)據(jù)集中的改動(dòng)提交到經(jīng)
6、過數(shù)據(jù)適配器可以將數(shù)據(jù)集中的改動(dòng)提交到數(shù)據(jù)源的數(shù)據(jù)源的Command對(duì)象中,并保管在數(shù)據(jù)適配對(duì)象中,并保管在數(shù)據(jù)適配器的器的InsertCommand、UpdateCommand和和DeleteCommand屬性中屬性中nDataTableMapping數(shù)據(jù)表映射集合數(shù)據(jù)表映射集合nDataTableMapping集合保管了數(shù)據(jù)集中的表、字集合保管了數(shù)據(jù)集中的表、字段與數(shù)據(jù)庫中的表、字段的映射關(guān)系段與數(shù)據(jù)庫中的表、字段的映射關(guān)系6.1.2 XxxDataAdapter對(duì)象模型對(duì)象模型DataAdapter 類的屬性和方法類的屬性和方法6.1.3 DataAdapter 類的屬性和方法類的屬性和
7、方法n數(shù)據(jù)適配器的屬性數(shù)據(jù)適配器的屬性nSelectCommand 從數(shù)據(jù)源中讀取數(shù)據(jù)從數(shù)據(jù)源中讀取數(shù)據(jù)nInsertCommand 將數(shù)據(jù)由數(shù)據(jù)集插入數(shù)據(jù)源將數(shù)據(jù)由數(shù)據(jù)集插入數(shù)據(jù)源nUpdateCommand 將數(shù)據(jù)集中更新的行寫回?cái)?shù)據(jù)源將數(shù)據(jù)集中更新的行寫回?cái)?shù)據(jù)源nDeleteCommand 在數(shù)據(jù)源中刪除數(shù)據(jù)在數(shù)據(jù)源中刪除數(shù)據(jù)DataAdapter 類的屬性和方法續(xù)類的屬性和方法續(xù)n數(shù)據(jù)適配器的方法數(shù)據(jù)適配器的方法nFill() 運(yùn)用由運(yùn)用由SelectCommand屬性指定的屬性指定的Select語句語句從數(shù)據(jù)源中讀取從數(shù)據(jù)源中讀取/更新數(shù)據(jù)到數(shù)據(jù)集更新數(shù)據(jù)到數(shù)據(jù)集nUpdate()
8、對(duì)數(shù)據(jù)集對(duì)數(shù)據(jù)集DataTable對(duì)象中特定的行調(diào)用執(zhí)對(duì)象中特定的行調(diào)用執(zhí)行行Insert、Delete、Update操作的對(duì)應(yīng)的命令對(duì)象操作的對(duì)應(yīng)的命令對(duì)象6.1.3 DataAdapter 類的屬性和方法類的屬性和方法創(chuàng)建運(yùn)用新創(chuàng)建運(yùn)用新 SELECT 語句的語句的 DataAdaptern創(chuàng)建一個(gè)執(zhí)行創(chuàng)建一個(gè)執(zhí)行SELECT語句的數(shù)據(jù)適配器語句的數(shù)據(jù)適配器n對(duì)非銜接方式運(yùn)用以只讀方式訪問數(shù)據(jù)對(duì)非銜接方式運(yùn)用以只讀方式訪問數(shù)據(jù)n創(chuàng)建數(shù)據(jù)適配器的兩種方法創(chuàng)建數(shù)據(jù)適配器的兩種方法n運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游n本人手工完成程序代碼本人手工完成程序代碼n在定義數(shù)據(jù)適配器時(shí)必需指定
9、在定義數(shù)據(jù)適配器時(shí)必需指定n一個(gè)用于查詢的一個(gè)用于查詢的SELECT語句語句n一個(gè)新的或者曾經(jīng)存在的數(shù)據(jù)庫銜接一個(gè)新的或者曾經(jīng)存在的數(shù)據(jù)庫銜接Visual Basic 例如例如C# 例如例如6.1.4 創(chuàng)建運(yùn)用新創(chuàng)建運(yùn)用新 SELECT 語句的語句的 DataAdapter創(chuàng)建運(yùn)用現(xiàn)有存儲(chǔ)過程的創(chuàng)建運(yùn)用現(xiàn)有存儲(chǔ)過程的 DataAdaptern可以編程創(chuàng)建一個(gè)執(zhí)行存儲(chǔ)過程可以編程創(chuàng)建一個(gè)執(zhí)行存儲(chǔ)過程n為為SelectCommand指定一個(gè)存儲(chǔ)過程指定一個(gè)存儲(chǔ)過程n假設(shè)需求可以為假設(shè)需求可以為InsertCommand、UpdateCommand和和DeleteCommond指定存儲(chǔ)過程指定存儲(chǔ)過
10、程n運(yùn)用導(dǎo)游方式或者手工編碼方式創(chuàng)建數(shù)據(jù)適配器運(yùn)用導(dǎo)游方式或者手工編碼方式創(chuàng)建數(shù)據(jù)適配器n必需指定必需指定n一個(gè)新的或者曾經(jīng)存在的數(shù)據(jù)庫銜接一個(gè)新的或者曾經(jīng)存在的數(shù)據(jù)庫銜接n調(diào)用的存儲(chǔ)過程調(diào)用的存儲(chǔ)過程n實(shí)際實(shí)際Visual Basic 例如例如C# 例如例如6.1.5 創(chuàng)建運(yùn)用現(xiàn)有存儲(chǔ)過程的創(chuàng)建運(yùn)用現(xiàn)有存儲(chǔ)過程的 DataAdapter第第6章章 從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集n配置配置 DataAdapter DataAdapter 以檢索信息以檢索信息 n運(yùn)用運(yùn)用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataA
11、dapter DataAdapter 更新后臺(tái)數(shù)據(jù)源更新后臺(tái)數(shù)據(jù)源n將數(shù)據(jù)更改保管到數(shù)據(jù)源將數(shù)據(jù)更改保管到數(shù)據(jù)源n沖突處置沖突處置 運(yùn)用運(yùn)用 DataAdapter 填充填充 DataSetn運(yùn)用運(yùn)用 DataAdapter 填充填充 DataSetn為為 DataSet 指定附加約束指定附加約束n高效地填充高效地填充 Datasetn運(yùn)用多個(gè)運(yùn)用多個(gè) DataAdapter 填充一個(gè)填充一個(gè) DataSet6.2 運(yùn)用運(yùn)用 DataAdapter 填充填充 DataSet多媒體演示多媒體演示 數(shù)據(jù)適配器的數(shù)據(jù)適配器的 Fill 方法方法n運(yùn)用數(shù)據(jù)適配器的運(yùn)用數(shù)據(jù)適配器的Fill()方法在數(shù)據(jù)
12、集對(duì)方法在數(shù)據(jù)集對(duì)象中填充與創(chuàng)建象中填充與創(chuàng)建DataTable 對(duì)象對(duì)象運(yùn)用運(yùn)用 DataAdapter 填充填充 DataSetn可以運(yùn)用數(shù)據(jù)適配器來填充數(shù)據(jù)集可以運(yùn)用數(shù)據(jù)適配器來填充數(shù)據(jù)集n調(diào)用數(shù)據(jù)適配器的調(diào)用數(shù)據(jù)適配器的Fill()方法方法nFill()方法執(zhí)行方法執(zhí)行SelectCommandn運(yùn)用查詢結(jié)果的內(nèi)容和構(gòu)造填充數(shù)據(jù)集中的數(shù)據(jù)運(yùn)用查詢結(jié)果的內(nèi)容和構(gòu)造填充數(shù)據(jù)集中的數(shù)據(jù)表表n可以經(jīng)過以下方法提高性能可以經(jīng)過以下方法提高性能nDataSet.EnforceConstraints=Falsen對(duì)對(duì)DataTable 對(duì)象調(diào)用對(duì)象調(diào)用BeginLoadData()方法方法Visua
13、l Basic 例如例如C# 例如例如6.2.1 運(yùn)用運(yùn)用 DataAdapter 填充填充 DataSet為為 DataSet 指定附加約束指定附加約束n可以在數(shù)據(jù)構(gòu)造未知的情況下填充數(shù)據(jù)集可以在數(shù)據(jù)構(gòu)造未知的情況下填充數(shù)據(jù)集n數(shù)據(jù)集的數(shù)據(jù)構(gòu)造在設(shè)計(jì)階段未知數(shù)據(jù)集的數(shù)據(jù)構(gòu)造在設(shè)計(jì)階段未知n在運(yùn)轉(zhuǎn)時(shí)根據(jù)得到的數(shù)據(jù)來確定數(shù)據(jù)集的數(shù)據(jù)構(gòu)在運(yùn)轉(zhuǎn)時(shí)根據(jù)得到的數(shù)據(jù)來確定數(shù)據(jù)集的數(shù)據(jù)構(gòu)造造n可以在運(yùn)轉(zhuǎn)時(shí)經(jīng)過數(shù)據(jù)適配器控制如何創(chuàng)建并生可以在運(yùn)轉(zhuǎn)時(shí)經(jīng)過數(shù)據(jù)適配器控制如何創(chuàng)建并生成數(shù)據(jù)集的數(shù)據(jù)構(gòu)造成數(shù)據(jù)集的數(shù)據(jù)構(gòu)造Visual Basic 例如例如C# 例如例如6.2.2 為為 DataSet 指定附加約束指定
14、附加約束為為 DataSet 指定附加約束續(xù)指定附加約束續(xù)6.2.2 為為 DataSet 指定附加約束指定附加約束n運(yùn)用運(yùn)用MissingSchemaAction屬性控制數(shù)據(jù)構(gòu)造生成屬性控制數(shù)據(jù)構(gòu)造生成nAdd 添加時(shí)不保管主鍵信息添加時(shí)不保管主鍵信息nAddWithKey 添加時(shí)主鍵信息載入添加時(shí)主鍵信息載入DataTable 對(duì)象對(duì)象nError 用于必需按照事先定義的構(gòu)造的驗(yàn)證用于必需按照事先定義的構(gòu)造的驗(yàn)證nIgnore 忽略結(jié)果集中多出的表和列忽略結(jié)果集中多出的表和列aDataAdapter.MissingSchemaAction = MissingSchemaAction.Add
15、 aDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey aDataAdapter.MissingSchemaAction = MissingSchemaAction.Error aDataAdapter.MissingSchemaAction = MissingSchemaAction.Ignoren調(diào)用調(diào)用FillSchema()方法建立一個(gè)新的數(shù)據(jù)集的數(shù)據(jù)構(gòu)造方法建立一個(gè)新的數(shù)據(jù)集的數(shù)據(jù)構(gòu)造nFillSchema()方法只是將數(shù)據(jù)構(gòu)造的信息取到數(shù)據(jù)集與方法只是將數(shù)據(jù)構(gòu)造的信息取到數(shù)據(jù)集與數(shù)據(jù)表數(shù)據(jù)表nFillSc
16、hema()方法的語法方法的語法naDataTableArray = aDataAdapter.FillSchema(aDataSet,_nSchemaType.Mapped | SchemaType.Source)nSchemaType的兩個(gè)屬性:的兩個(gè)屬性:Mapped或者或者Source, 用于用于決議能否將數(shù)據(jù)表映射集合的信息運(yùn)用到查詢結(jié)果決議能否將數(shù)據(jù)表映射集合的信息運(yùn)用到查詢結(jié)果為為 DataSet 指定附加約束續(xù)指定附加約束續(xù)6.2.2 為為 DataSet 指定附加約束指定附加約束高效地填充高效地填充 Datasetn在填充一個(gè)數(shù)據(jù)集前顯式地定義數(shù)據(jù)構(gòu)造在填充一個(gè)數(shù)據(jù)集前顯式地
17、定義數(shù)據(jù)構(gòu)造n數(shù)據(jù)表、數(shù)據(jù)列以及數(shù)據(jù)關(guān)聯(lián)在數(shù)據(jù)被載入前曾數(shù)據(jù)表、數(shù)據(jù)列以及數(shù)據(jù)關(guān)聯(lián)在數(shù)據(jù)被載入前曾經(jīng)確定經(jīng)確定n使數(shù)據(jù)可以被更高效地載入使數(shù)據(jù)可以被更高效地載入n如何顯式地定義一個(gè)數(shù)據(jù)集的數(shù)據(jù)構(gòu)造如何顯式地定義一個(gè)數(shù)據(jù)集的數(shù)據(jù)構(gòu)造n創(chuàng)建一個(gè)類型化的數(shù)據(jù)集類創(chuàng)建一個(gè)類型化的數(shù)據(jù)集類ndsCustomers.Customers.BeginLoadData()ndaCustomers.Fill(dsCustomers.Customers)ndsCustomers.Customers.EndLoadData()nDataGrid1.DataSource = dsCustomers.Customers.
18、DefaultViewn或者以編程的方式創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)列和數(shù)據(jù)關(guān)或者以編程的方式創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)列和數(shù)據(jù)關(guān)聯(lián)等對(duì)象聯(lián)等對(duì)象Visual Basic 例如例如C# 例如例如6.2.3 高效地填充高效地填充 Dataset運(yùn)用多個(gè)運(yùn)用多個(gè) DataAdapter 填充一個(gè)填充一個(gè) DataSet n可以運(yùn)用多個(gè)數(shù)據(jù)適配器填充一個(gè)數(shù)據(jù)集可以運(yùn)用多個(gè)數(shù)據(jù)適配器填充一個(gè)數(shù)據(jù)集n每個(gè)數(shù)據(jù)適配器填充數(shù)據(jù)集中一個(gè)獨(dú)立的表每個(gè)數(shù)據(jù)適配器填充數(shù)據(jù)集中一個(gè)獨(dú)立的表n為每一個(gè)數(shù)據(jù)適配器調(diào)用為每一個(gè)數(shù)據(jù)適配器調(diào)用Fill()方法方法n在數(shù)據(jù)集中指定填充哪一個(gè)表在數(shù)據(jù)集中指定填充哪一個(gè)表nVisual Basic 例如
19、例如ndaCustomers.Fill(dsCustomerOrders.Customers)ndaOrders.Fill(dsCustomerOrders.Orders)nDataGrid1.DataSource = dsCustomerOrders.Customersn實(shí)際實(shí)際6.2.4 運(yùn)用多個(gè)運(yùn)用多個(gè) DataAdapter 填充一個(gè)填充一個(gè) DataSet實(shí)驗(yàn)實(shí)驗(yàn) A 在斷開式運(yùn)用程序中檢索數(shù)據(jù)在斷開式運(yùn)用程序中檢索數(shù)據(jù)n練習(xí)練習(xí) 1 查看運(yùn)用程序查看運(yùn)用程序 n練習(xí)練習(xí) 2 創(chuàng)建存儲(chǔ)員工信息和運(yùn)用程序創(chuàng)建存儲(chǔ)員工信息和運(yùn)用程序設(shè)置的設(shè)置的 DataSet n練習(xí)練習(xí) 3 加載并顯示
20、員工信息加載并顯示員工信息 n練習(xí)練習(xí) 4 指定并運(yùn)用不同的效力器稱號(hào)指定并運(yùn)用不同的效力器稱號(hào)第第6章章 從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集從現(xiàn)有數(shù)據(jù)源構(gòu)造數(shù)據(jù)集n配置配置 DataAdapter DataAdapter 以檢索信息以檢索信息 n運(yùn)用運(yùn)用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后臺(tái)數(shù)據(jù)源更新后臺(tái)數(shù)據(jù)源n將數(shù)據(jù)更改保管到數(shù)據(jù)源將數(shù)據(jù)更改保管到數(shù)據(jù)源n沖突處置沖突處置 配置配置 DataAdapter 更新后臺(tái)數(shù)據(jù)源更新后臺(tái)數(shù)據(jù)源nDataSet 跟蹤更改的方式跟蹤更改的方式n數(shù)
21、據(jù)更新命令數(shù)據(jù)更新命令 n運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游設(shè)置數(shù)據(jù)更新命令運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游設(shè)置數(shù)據(jù)更新命令6.3 配置配置 DataAdapter 更新后臺(tái)數(shù)據(jù)源更新后臺(tái)數(shù)據(jù)源多媒體演示多媒體演示 數(shù)據(jù)集如何記錄數(shù)據(jù)的更改數(shù)據(jù)集如何記錄數(shù)據(jù)的更改 n數(shù)據(jù)集是如何記錄數(shù)據(jù)改動(dòng)的數(shù)據(jù)集是如何記錄數(shù)據(jù)改動(dòng)的DataSet 跟蹤更改的方式跟蹤更改的方式n每個(gè)數(shù)據(jù)行對(duì)象都有一個(gè)每個(gè)數(shù)據(jù)行對(duì)象都有一個(gè)RowState屬性屬性n標(biāo)識(shí)數(shù)據(jù)集中每一行數(shù)據(jù)的形狀標(biāo)識(shí)數(shù)據(jù)集中每一行數(shù)據(jù)的形狀n形狀的類型形狀的類型nDataRowState.Added該行曾經(jīng)插入到該行曾經(jīng)插入到數(shù)據(jù)集數(shù)據(jù)集nDataRowState.D
22、eleted該行曾經(jīng)從數(shù)據(jù)該行曾經(jīng)從數(shù)據(jù)集中刪除集中刪除nDataRowState.Detached該行曾經(jīng)創(chuàng)建,但未添該行曾經(jīng)創(chuàng)建,但未添加到數(shù)據(jù)加到數(shù)據(jù)集中的集中的DataRowCollectionnDataRowState.Modified該行曾經(jīng)更改該行曾經(jīng)更改nDataRowState.Unchanged該行沒有發(fā)生任何變化該行沒有發(fā)生任何變化Visual Basic 例如例如C# 例如例如6.3.1 DataSet 跟蹤更改的方式跟蹤更改的方式DataSet 跟蹤更改的方式續(xù)跟蹤更改的方式續(xù)n每個(gè)數(shù)據(jù)集都對(duì)每一行數(shù)據(jù)維護(hù)兩份拷貝每個(gè)數(shù)據(jù)集都對(duì)每一行數(shù)據(jù)維護(hù)兩份拷貝n當(dāng)前版本當(dāng)前版本
23、DataRowVersion.Currentnif (row.RowState = DataRowState.Added)nrow“FieldName,DataRowVersion.Current n原始版本原始版本DataRowVersion.Originalnif (row.RowState = DataRowState.Deleted)nrow“FieldName,DataRowVersion.Original6.3.1 DataSet 跟蹤更改的方式跟蹤更改的方式數(shù)據(jù)更新命令數(shù)據(jù)更新命令n一個(gè)一個(gè)SqlDataAdapter或或OleDbDataAdapter對(duì)象都有一對(duì)象都有一些命令
24、對(duì)象可以用來更改數(shù)據(jù)源的數(shù)據(jù)些命令對(duì)象可以用來更改數(shù)據(jù)源的數(shù)據(jù)nInsertCommand nUpdateCommand nDeleteCommandn語法:對(duì)語法:對(duì)Sql和和OleDb的數(shù)據(jù)適配器以及各個(gè)命令對(duì)的數(shù)據(jù)適配器以及各個(gè)命令對(duì)象完全一樣象完全一樣npublic SqlCommand InsertCommand get; set;Visual Basic 例如例如C# 例如例如6.3.2 數(shù)據(jù)更新命令數(shù)據(jù)更新命令運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游設(shè)置數(shù)據(jù)更新命令運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游設(shè)置數(shù)據(jù)更新命令 n可以運(yùn)用數(shù)據(jù)適配器導(dǎo)游配置數(shù)據(jù)更新命令可以運(yùn)用數(shù)據(jù)適配器導(dǎo)游配置數(shù)據(jù)更新命令n導(dǎo)游有以下三種
25、不同的方式產(chǎn)生更新命令導(dǎo)游有以下三種不同的方式產(chǎn)生更新命令n運(yùn)用運(yùn)用SQL語句語句n創(chuàng)建一個(gè)新的存儲(chǔ)過程創(chuàng)建一個(gè)新的存儲(chǔ)過程n運(yùn)用曾經(jīng)存在的存儲(chǔ)過程運(yùn)用曾經(jīng)存在的存儲(chǔ)過程n實(shí)際實(shí)際6.3.3 運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游設(shè)置數(shù)據(jù)更新命令運(yùn)用數(shù)據(jù)適配器配置導(dǎo)游設(shè)置數(shù)據(jù)更新命令 第第6章章 從現(xiàn)有數(shù)據(jù)中構(gòu)造數(shù)據(jù)集從現(xiàn)有數(shù)據(jù)中構(gòu)造數(shù)據(jù)集n配置配置 DataAdapter DataAdapter 以檢索信息以檢索信息 n運(yùn)用運(yùn)用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后臺(tái)數(shù)據(jù)源更新后臺(tái)數(shù)據(jù)源n將
26、數(shù)據(jù)更改保管到數(shù)據(jù)源將數(shù)據(jù)更改保管到數(shù)據(jù)源n沖突處置沖突處置將數(shù)據(jù)更改保管到數(shù)據(jù)源將數(shù)據(jù)更改保管到數(shù)據(jù)源n運(yùn)用運(yùn)用DataSetDataSet對(duì)象的對(duì)象的GetChangesGetChanges方法的時(shí)機(jī)方法的時(shí)機(jī)n將更改合并到一個(gè)將更改合并到一個(gè)DataSetDataSet對(duì)象對(duì)象 n運(yùn)用運(yùn)用DataSetDataSet更新數(shù)據(jù)源更新數(shù)據(jù)源nDataSetDataSet接受數(shù)據(jù)更改的方式接受數(shù)據(jù)更改的方式6.4 將數(shù)據(jù)更改保管到數(shù)據(jù)源將數(shù)據(jù)更改保管到數(shù)據(jù)源多媒體演示多媒體演示 運(yùn)用數(shù)據(jù)適配器的運(yùn)用數(shù)據(jù)適配器的Update方法更新方法更新對(duì)應(yīng)的數(shù)據(jù)源對(duì)應(yīng)的數(shù)據(jù)源n數(shù)據(jù)適配器的數(shù)據(jù)適配器的Upd
27、ate方法更新對(duì)應(yīng)的數(shù)方法更新對(duì)應(yīng)的數(shù)據(jù)源據(jù)源運(yùn)用運(yùn)用DataSetDataSet對(duì)象的對(duì)象的GetChangesGetChanges方法的時(shí)機(jī)方法的時(shí)機(jī) n當(dāng)需求將數(shù)據(jù)更改傳給由另一個(gè)對(duì)象運(yùn)用的另一個(gè)當(dāng)需求將數(shù)據(jù)更改傳給由另一個(gè)對(duì)象運(yùn)用的另一個(gè)類的時(shí)候調(diào)用類的時(shí)候調(diào)用GetChanges()方法方法n代碼例如代碼例如nIf dsCustomers.HasChanges(DataRowState.Modified) Thenn Dim dsTemp As DataSetn dsTemp = dsCustomers.GetChanges(DataRowState.Modified)n DataG
28、rid1.DataSource = dsTemp.Tables(0).DefaultViewnEnd Ifn運(yùn)用運(yùn)用GetChanges()方法得到包含該數(shù)據(jù)集中一切數(shù)據(jù)方法得到包含該數(shù)據(jù)集中一切數(shù)據(jù)更改的數(shù)據(jù)集的拷貝更改的數(shù)據(jù)集的拷貝n從數(shù)據(jù)被載入開場從數(shù)據(jù)被載入開場 n從從AcceptChanges()方法最后一次被調(diào)用開場方法最后一次被調(diào)用開場6.4.1 運(yùn)用運(yùn)用DataSet對(duì)象的對(duì)象的GetChanges方法的時(shí)機(jī)方法的時(shí)機(jī) 將更改合并到一個(gè)將更改合并到一個(gè)DataSetDataSet對(duì)象對(duì)象 n運(yùn)用運(yùn)用Merge()方法合并兩個(gè)數(shù)據(jù)集:一個(gè)原始數(shù)據(jù)方法合并兩個(gè)數(shù)據(jù)集:一個(gè)原始數(shù)據(jù)集
29、以及一個(gè)僅包含對(duì)原始數(shù)據(jù)集更改的數(shù)據(jù)集集以及一個(gè)僅包含對(duì)原始數(shù)據(jù)集更改的數(shù)據(jù)集n代碼例如代碼例如naDataSet.Merge(anotherDataSet)n被合并的兩個(gè)數(shù)據(jù)集要有一樣的數(shù)據(jù)構(gòu)造被合并的兩個(gè)數(shù)據(jù)集要有一樣的數(shù)據(jù)構(gòu)造6.4.2 將更改合并到一個(gè)將更改合并到一個(gè)DataSet對(duì)象對(duì)象 運(yùn)用運(yùn)用DataSetDataSet更新數(shù)據(jù)源更新數(shù)據(jù)源 n數(shù)據(jù)適配器的數(shù)據(jù)適配器的Update()方法對(duì)指定的數(shù)據(jù)表中被更方法對(duì)指定的數(shù)據(jù)表中被更新過的每一行調(diào)用適當(dāng)?shù)男逻^的每一行調(diào)用適當(dāng)?shù)腟QL語句語句nINSERTnUPDATEnDELETEn代碼例如代碼例如naDataAdapter.Upd
30、ate(aDataSet, aDataTable)Visual Basic 例如例如C# 例如例如6.4.3 運(yùn)用運(yùn)用DataSet更新數(shù)據(jù)源更新數(shù)據(jù)源 n數(shù)據(jù)集的數(shù)據(jù)集的AcceptChanges()方法提交自數(shù)據(jù)被載入方法提交自數(shù)據(jù)被載入或自此次調(diào)用起一切該數(shù)據(jù)集的數(shù)據(jù)更改或自此次調(diào)用起一切該數(shù)據(jù)集的數(shù)據(jù)更改n代碼例如代碼例如naDataSet.AcceptChanges()n可以對(duì)整個(gè)數(shù)據(jù)集調(diào)用可以對(duì)整個(gè)數(shù)據(jù)集調(diào)用AcceptChanges()方法,或方法,或者對(duì)一個(gè)者對(duì)一個(gè)DataTable 對(duì)象的一個(gè)數(shù)據(jù)行對(duì)象調(diào)用對(duì)象的一個(gè)數(shù)據(jù)行對(duì)象調(diào)用n實(shí)際實(shí)際DataSetDataSet接受數(shù)據(jù)
31、更改的方式接受數(shù)據(jù)更改的方式 6.4.4 DataSet接受數(shù)據(jù)更改的方式接受數(shù)據(jù)更改的方式 Visual Basic 例如例如C# 例如例如第第6章章 從現(xiàn)有數(shù)據(jù)中構(gòu)造數(shù)據(jù)集從現(xiàn)有數(shù)據(jù)中構(gòu)造數(shù)據(jù)集n配置配置 DataAdapter DataAdapter 以檢索信息以檢索信息 n運(yùn)用運(yùn)用 DataAdapter DataAdapter 填充填充 DataSet DataSetn配置配置 DataAdapter DataAdapter 更新后臺(tái)數(shù)據(jù)源更新后臺(tái)數(shù)據(jù)源n將數(shù)據(jù)更改保管到數(shù)據(jù)源將數(shù)據(jù)更改保管到數(shù)據(jù)源 n沖突處置沖突處置沖突處置沖突處置 n發(fā)生沖突發(fā)生沖突n檢測沖突檢測沖突n處理沖突處
32、理沖突6.5 沖突處置沖突處置 發(fā)生沖突發(fā)生沖突n非銜接環(huán)境運(yùn)用了開放式并發(fā)機(jī)制非銜接環(huán)境運(yùn)用了開放式并發(fā)機(jī)制n在一步數(shù)據(jù)操作完成后數(shù)據(jù)庫鎖立刻被釋放在一步數(shù)據(jù)操作完成后數(shù)據(jù)庫鎖立刻被釋放n非銜接環(huán)境運(yùn)用開放式并發(fā)機(jī)制保證其他資源對(duì)非銜接環(huán)境運(yùn)用開放式并發(fā)機(jī)制保證其他資源對(duì)數(shù)據(jù)庫的同步訪問數(shù)據(jù)庫的同步訪問n保守式并發(fā)機(jī)制在整個(gè)數(shù)據(jù)操作過程中堅(jiān)持?jǐn)?shù)據(jù)保守式并發(fā)機(jī)制在整個(gè)數(shù)據(jù)操作過程中堅(jiān)持?jǐn)?shù)據(jù)庫的鎖庫的鎖n舉例闡明舉例闡明6.5.1 發(fā)生沖突發(fā)生沖突發(fā)生沖突續(xù)發(fā)生沖突續(xù)n在更新數(shù)據(jù)庫時(shí)會(huì)產(chǎn)生數(shù)據(jù)沖突在更新數(shù)據(jù)庫時(shí)會(huì)產(chǎn)生數(shù)據(jù)沖突n另一個(gè)運(yùn)用或效力能夠曾經(jīng)更改了數(shù)據(jù)另一個(gè)運(yùn)用或效力能夠曾經(jīng)更改了數(shù)據(jù)n舉例舉例n刪除曾經(jīng)不存在的行刪除曾經(jīng)不存在的行n更新曾經(jīng)被更新的列更新曾經(jīng)被更新的列n實(shí)際實(shí)際6.5.1 發(fā)生沖突發(fā)生沖突檢測沖突檢測沖突n數(shù)據(jù)適配器配置導(dǎo)游可以產(chǎn)生用來監(jiān)測沖突的數(shù)據(jù)適配器配置導(dǎo)游可以產(chǎn)生用來監(jiān)測沖突的SQL語句語句n當(dāng)更新數(shù)據(jù)庫時(shí)當(dāng)更新數(shù)據(jù)庫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球晶圓檢測用物鏡行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國鉆頭修磨機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球醫(yī)療器械用注塑機(jī)行業(yè)調(diào)研及趨勢分析報(bào)告
- 主講人鄭長花
- 第06講 我們生活的大洲-亞洲(解析版)
- 2025原料采購合同的模板
- 2025個(gè)人保證擔(dān)保借款合同
- 門面房房屋租賃合同范本
- 工地配餐合同協(xié)議書范本
- it運(yùn)維外包服務(wù)合同
- 2025公司開工大吉蛇年起航萬象啟新模板
- GB/T 11263-2024熱軋H型鋼和剖分T型鋼
- 執(zhí)業(yè)醫(yī)師資格考試《臨床執(zhí)業(yè)醫(yī)師》 考前 押題試卷(一)絕密1
- 2024七年級(jí)數(shù)學(xué)上冊第六章幾何圖形初步綜合與實(shí)踐設(shè)計(jì)學(xué)校田徑運(yùn)動(dòng)會(huì)比賽場地課件新版新人教版
- 全國網(wǎng)約車出租車駕駛員公共題模擬考試題及答案
- 新人教版一年級(jí)數(shù)學(xué)下冊全冊教案(表格式)
- 簡易三方換地協(xié)議書范本
- 2025屆廣東省深圳羅湖區(qū)四校聯(lián)考九上數(shù)學(xué)期末綜合測試試題含解析
- 飛鼠養(yǎng)殖技術(shù)指導(dǎo)
- 2024年襄陽漢江檢測有限公司招聘筆試參考題庫附帶答案詳解
- 醫(yī)院檢驗(yàn)科安全風(fēng)險(xiǎn)評(píng)估報(bào)告表單
評(píng)論
0/150
提交評(píng)論