數(shù)據(jù)庫(kù)編程接口_第1頁(yè)
已閱讀1頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、14.1開放式數(shù)據(jù)庫(kù)連接(ODBC) ODBC(Open Database Connectivity)是由Microsoft 開發(fā)和定義的一種訪問數(shù)據(jù)庫(kù)的應(yīng)用程序接口,是一組用于訪問不同構(gòu)造的數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序,在數(shù)據(jù)庫(kù)應(yīng)用程序中,不需要考慮各類數(shù)據(jù)庫(kù)的系統(tǒng)的構(gòu)造細(xì)節(jié),只要使用ODBC提供的驅(qū)動(dòng)程序,通過將SQL語(yǔ)句發(fā)送到目標(biāo)數(shù)據(jù)庫(kù)中,就可以存取各類數(shù)據(jù)庫(kù)中的數(shù)據(jù)。,,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),1. ODBC組件

2、ODBC使用的分層體系結(jié)構(gòu)包括:ODBC應(yīng)用程序、驅(qū)動(dòng)程序管理器、ODBC驅(qū)動(dòng)程序和數(shù)據(jù)源。其結(jié)構(gòu)課本所示。2.配置ODBC數(shù)據(jù)源 在使用ODBC之前,必須安裝一個(gè)ODBC驅(qū)動(dòng)程序,然后再配置一個(gè)數(shù)據(jù)源。數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序使用Data Source Name (DSN)來定位特定的ODBC兼容數(shù)據(jù)庫(kù),將信息從應(yīng)用程序傳遞給數(shù)據(jù)庫(kù)。典型情況下,DSN通常包含數(shù)據(jù)庫(kù)配置、用戶安全性和定位信息,并且可以獲取Windows NT注冊(cè)表項(xiàng)中

3、或文本文件的表格。 (1) ODBC數(shù)據(jù)源名 數(shù)據(jù)源名是為所要訪問數(shù)據(jù)庫(kù)指定的名字。通常情況下,如果要連接到一個(gè)數(shù)據(jù)庫(kù)上,則必須發(fā)送一組參數(shù)來獲得該連接。在每次要連接一個(gè)數(shù)據(jù)庫(kù)時(shí),反復(fù)地發(fā)送這些信息很麻煩,因?yàn)檫@些信息是永遠(yuǎn)不改變的。,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),( 2) SQL Server數(shù)據(jù)庫(kù)系統(tǒng)DSN的配置方法下面通過一個(gè)實(shí)例,具體說明DSN的配置方法?!纠?4-1】建立一個(gè)名稱為studentDBS的

4、數(shù)據(jù)源,通過該數(shù)據(jù)源名稱引用student_ms數(shù)據(jù)庫(kù)。(1)在計(jì)算機(jī)中,通過“開始”→“控制面板”→“管理工具”→“數(shù)據(jù)源( ODBC)”命令,打開ODBC數(shù)據(jù)源管理器。在該數(shù)據(jù)源管理器中選擇“系統(tǒng)DSN”標(biāo)簽頁(yè),如圖所示。,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),(2)單擊“添加”按鈕,打開“創(chuàng)建新數(shù)據(jù)源”對(duì)話框,在“選擇您想為其安裝數(shù)據(jù)源的驅(qū)動(dòng)程序”的列表框中,顯示系統(tǒng)中全部ODBC驅(qū)動(dòng)程序,選擇“SQL Server"

5、,如圖所示。,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),(3)單擊“完成”按鈕,系統(tǒng)自動(dòng)彈出如下圖所示的“創(chuàng)建到SQL Server的新數(shù)據(jù)源”設(shè)置界面,在數(shù)據(jù)源名稱文本欄中輸入內(nèi)容:,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),(4)單擊“下一步”按鈕, SQL Server將確定應(yīng)該如何驗(yàn)證登錄ID的真?zhèn)?。選擇“使用網(wǎng)絡(luò)登錄ID的Windows NT驗(yàn)證”這種驗(yàn)證方式。如圖所示,可以根據(jù)需要選擇不同的選項(xiàng)。,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC

6、),(5)單擊“下一步”按鈕,SQL Server將確定默認(rèn)的數(shù)據(jù)庫(kù)等,如圖所示。在該對(duì)話框中,可根據(jù)需要更改默認(rèn)數(shù)據(jù)庫(kù)的名稱,這里輸入“student _ms”,也可以添加“附加數(shù)據(jù)庫(kù)文件名”等。,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),(6)單擊“下一步”按鈕,出現(xiàn)對(duì)新數(shù)據(jù)源進(jìn)行簡(jiǎn)單設(shè)置的對(duì)話框,如圖所示。,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),(7)單擊“完成”按鈕,系統(tǒng)將會(huì)顯示新創(chuàng)建的ODBC數(shù)據(jù)源的配置情況的描述,如圖所示。,1

7、4.1開放式數(shù)據(jù)庫(kù)連接(ODBC),(8)單擊“測(cè)試數(shù)據(jù)源”按鈕,如果DSN創(chuàng)建成功,則“SQL Server ODBC 數(shù)據(jù)源測(cè)試”對(duì)話框?qū)?huì)顯示測(cè)試成功的消息,如圖所示。,14.1開放式數(shù)據(jù)庫(kù)連接(ODBC),(9)單擊“確定”按鈕,完成配置SQL Serve:數(shù)據(jù)源的操作。返回到“系統(tǒng)DSN”標(biāo)簽頁(yè)中,則會(huì)看到剛剛建立好的數(shù)據(jù)源。注意:在配置ODBC數(shù)據(jù)源以前,請(qǐng)確定數(shù)據(jù)庫(kù)已建立完成,如果是配置SQL Server數(shù)據(jù)源,還得確

8、定SQL Server處于運(yùn)行狀態(tài)。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),14.2.1 ActiveX數(shù)據(jù)對(duì)象(ADO ) ADO包括Command,Connection等七個(gè)對(duì)象和一個(gè)動(dòng)態(tài)的Properties集合,絕大部分的數(shù)據(jù)庫(kù)訪問任務(wù)都可以通過它們的組合來完成。ADO具體的七個(gè)對(duì)象為:●Command:定義對(duì)數(shù)據(jù)源進(jìn)行操作的命令;● Connection:建立一個(gè)數(shù)據(jù)源的連接;● Error:提供數(shù)據(jù)訪問錯(cuò)誤的

9、細(xì)節(jié);● Field:表示一般數(shù)據(jù)類型的字段;● Parameter:表示Command對(duì)象的參數(shù);● Property:表示由數(shù)據(jù)源定義ADO對(duì)象的動(dòng)態(tài)特性;● Recordset:數(shù)據(jù)庫(kù)命令結(jié)果集對(duì)象。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),通過ADO訪問數(shù)據(jù)庫(kù)通常經(jīng)過下列步驟。 ①創(chuàng)建數(shù)據(jù)庫(kù)源名,即創(chuàng)建和配置ODBC數(shù)據(jù)源。 ②創(chuàng)建數(shù)據(jù)庫(kù)鏈接 如果要訪問數(shù)據(jù),必須首先創(chuàng)建與數(shù)據(jù)庫(kù)的鏈接,其語(yǔ)法如下:

10、Set Conn=Server CreateObject ("ADOBD. CONNECTION") 這條語(yǔ)句創(chuàng)建了鏈接對(duì)象Conn,然后打開該連接,其語(yǔ)法格式為: Conn. Open "dsn_name',"username'","password" 其中該連接的DSN名為“dsn_ name",”username”、“p

11、assword”分別表示訪問數(shù)據(jù)庫(kù)的用戶名和口令,為可選參數(shù)。在這里我們主要介紹Connection對(duì)象、Command對(duì)象和Recordset對(duì)象。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),14.2.2 Connection對(duì)象 Connection 對(duì)象表示數(shù)據(jù)源的唯一會(huì)話。在使用客戶端/服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)的情況下,該對(duì)象可以等價(jià)于到服務(wù)器的實(shí)際網(wǎng)絡(luò)連接。Connection 對(duì)象的某些集合、方法或?qū)傩钥赡軣o(wú)效,這取決于提供

12、者支持的功能。 使用Connection對(duì)象的集合、方法和屬性可以執(zhí)行下列操作: (1)在打開連接前使用ConnectionString,ConnectionTimeout和Mode屬性對(duì)連接進(jìn)行配置。 (2)使用DefaultDatabase屬性設(shè)置連接的默認(rèn)數(shù)據(jù)庫(kù)。 (3)使用IsolationLevel屬性為在連接上打開的事務(wù)設(shè)置隔離級(jí)別。 (4)使用Provider屬性指定OLE DB提供者。 (5)

13、Open方法建立到數(shù)據(jù)源的物理連接。使用Close方法將其切斷。,,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),(6)Execute方法執(zhí)行對(duì)連接的命令,并使用CommandTimeout屬性對(duì)執(zhí)行進(jìn)行配置。(7)可使用BeginTrans,CommitTrans和RollbackTrans方法以及Attributes屬性管理打開的連接上的事務(wù)(如果提供者支持則包括嵌套的事務(wù))。(8)使用Errors集合檢查數(shù)據(jù)源返回的錯(cuò)誤。(9)通

14、過Version屬性讀取所使用的ADO執(zhí)行版本。(10)使用OpenSchema方法獲取數(shù)據(jù)庫(kù)綱要信息。 ADO連接數(shù)據(jù)庫(kù)的兩種方式。 (1)通過數(shù)據(jù)源名稱(DSN)建立連接 先設(shè)置好DSN后,通過ADO的Connection對(duì)象實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接。其語(yǔ)法格式如下: ConnectionString="DSN=數(shù)據(jù)源名稱;UID=用戶名;PWD=口令”,,14. 2使用ADO操作數(shù)據(jù)庫(kù)

15、中的數(shù)據(jù),(2)直接使用數(shù)據(jù)庫(kù)文件名稱或數(shù)據(jù)源名稱建立連接 直接使用數(shù)據(jù)庫(kù)的文件名(比如Access,Paradox或FoxPro的數(shù)據(jù)庫(kù)文件)或者SQLServer的數(shù)據(jù)庫(kù),也可建立數(shù)據(jù)庫(kù)的連接。其語(yǔ)法格式如下: Connectionstring=“Provide=提供者名稱;DSN=數(shù)據(jù)源名稱;DRIVER=驅(qū)動(dòng)程序名稱;SERVER=服務(wù)器名稱;DATABASE=數(shù)據(jù)庫(kù)名稱;UID=用戶名;PWD=口令”1.Conne

16、ction對(duì)象的屬性Connection對(duì)象的屬性如下:(1) Connection String屬性 該屬性是一個(gè)字符串。包含用來建立到數(shù)據(jù)源的連接的信息。ADO支持的4個(gè)參數(shù)如下:●Providr:指定連接所用的供應(yīng)器的名稱。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),● File Name:指定包含預(yù)設(shè)連接信息的特定供應(yīng)器的文件名?!?Remote Provider:指定打開客戶端連接(只適用于遠(yuǎn)程數(shù)據(jù)服務(wù))時(shí)使用的供應(yīng)器

17、的名稱?!?Remote Serve:指定打開客戶端連接(只適用于遠(yuǎn)程數(shù)據(jù)服務(wù))時(shí)使用的服務(wù)器的路徑名。(2)CommandTimeout屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。指示在終止嘗試和產(chǎn)生錯(cuò)誤之前執(zhí)行命令期間需等待的秒數(shù)。默認(rèn)值為30秒。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),(3)Attributes 屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。設(shè)置或返回Connection對(duì)象的特性。并非所有的數(shù)據(jù)提供者都支持這種屬性。

18、它可取兩個(gè)值:●AdXactCommitRetaining:執(zhí)行保留的提交,即通過自動(dòng)調(diào)用CommitTrans啟動(dòng)新事務(wù)。并非所有的數(shù)據(jù)提供者都支持這種屬性。● AdXactCommitRetaining:執(zhí)行保留的終止,即通過自動(dòng)調(diào)用RollbackTrans啟動(dòng)新事務(wù)。并非所有的數(shù)據(jù)提供者都支持這種屬性。(4) DefaultDatabase屬性該屬性是一個(gè)字符串。包含Connection對(duì)象的默認(rèn)數(shù)據(jù)庫(kù)名稱。,14. 2

19、使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),(5) CursorLocation屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。包含光標(biāo)服務(wù)程序的默認(rèn)位置。這個(gè)值將由使用該Connection對(duì)象的Recordset對(duì)象自動(dòng)繼承。 (6) ConnectionTimeout屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。指示在終止嘗試和產(chǎn)生錯(cuò)誤前建立連接期間所等待的秒數(shù)。默認(rèn)值為30秒。 (7)Mode屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。指示可以

20、獲得的數(shù)據(jù)修改權(quán)限。 (8) Provider屬性 指示Connection對(duì)象提供者的名稱。(9)State屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。說明Connection對(duì)象的當(dāng)前狀態(tài)。(10)Version屬性 該屬性是一個(gè)字符串。包含ADO目前的版本號(hào)。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),2. Connection 對(duì)象的方法 (1)BeginTrans,CommitTrans,Rollback

21、Trans方法 BeginTrans方法啟動(dòng)新事物,即表示一個(gè)操作的開始。 CommitTrans方法保存所有更改并結(jié)束當(dāng)前事務(wù)。 RollbackTrans方法取消當(dāng)前事務(wù)中所做的任何更改并結(jié)束事務(wù)。其語(yǔ)法格式如下: ● level=Connection對(duì)象.BeginTrans() ● Connection對(duì)象.BeginTrans ● Connection對(duì)象.Commit

22、Trans ● Connection對(duì)象.RollbackTrans (2) Cancel方法 該方法終止一項(xiàng)由Execute或Open方法啟動(dòng)的異步任務(wù)。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),(3) Close方法 該方法用于關(guān)閉與數(shù)據(jù)提供者之間的連接。也可用于關(guān)閉任何處于打開狀態(tài)的Recordset對(duì)象,并可以把任意一個(gè)Command對(duì)象的ActiveConnection屬性設(shè)置成Nothing。(4)Ex

23、ecute方法 該方法執(zhí)行指定的命令。返回一個(gè)Recordset對(duì)象。其語(yǔ)法格式如下: 對(duì)于不按行返回的命令字符串: Connection對(duì)象.Execute CommandText,RecordsAffected,Options 對(duì)于按行返回的命令字符串: Set Recordset=Connection對(duì)象.Execute (CommandText,RecordsAffected,Option

24、s) (5) Open方法 該方法打開到數(shù)據(jù)源的連接。其語(yǔ)法格式如下: Connection對(duì)象.Open ConnectionString,UserID,Password,Options,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),(6) OpenSchema方法 該方法從數(shù)據(jù)提供者處返回?cái)?shù)據(jù)庫(kù)信息。其語(yǔ)法格式如下: Set Recordset=Connection對(duì)象.OpenSchema(QueryT

25、ype,Criteria,SchemaID)3.Connection對(duì)象的事件Connection對(duì)象的事件如下。(1)BeginTransComplete事件該事件在BeginTrans方法已經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。(2) CommitTransComplete事件該事件在CommitTrans方法己經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。(3) ConnectComplete事件該事件在連接開始后被觸發(fā)執(zhí)行。(

26、4) Disconnect事件該事件在連接結(jié)束后被觸發(fā)執(zhí)行。,,(5)ExecuteComplete事件該事件在Execute方法已經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。(6) InfoMessage事件該事件在當(dāng)前連接收到警告信息時(shí)被觸發(fā)執(zhí)行。(7)RollbackTransComplete事件該事件在RollbackTrans方法己經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。(8) Wi1lConnect事件該事件在連接啟動(dòng)前被觸

27、發(fā)執(zhí)行。(9) Wi1lExecute事件該事件在命令被執(zhí)行前被觸發(fā)執(zhí)行。14.2.3 Command對(duì)象 Command對(duì)象用于向已建立的連接發(fā)出一條命令,通常是SQL語(yǔ)句,或者是數(shù)據(jù)庫(kù)存儲(chǔ)過程。雖然Connection對(duì)象己經(jīng)有Execute方法可以用于運(yùn)行SQL語(yǔ)句,但是Command對(duì)象提供了更專門的運(yùn)行方式和參數(shù)傳遞。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),1.Comm

28、and對(duì)象的屬性Command對(duì)象的屬性如下。 (1)ActiveConnection屬性該屬性是一個(gè)指示指定的Command對(duì)象當(dāng)前所屬的Connection對(duì)象。(2) CommandText屬性該屬性是一個(gè)String型值。包含SQL語(yǔ)句、存儲(chǔ)過程或其他將被執(zhí)行的提供者命令。 (3) CommandTimeout屬性該屬性是一個(gè)Long型數(shù)值。指示在終止嘗試和產(chǎn)生錯(cuò)誤之前執(zhí)行命令期間需等待的時(shí)間(單位為秒)。默認(rèn)值為

29、30秒。(4) CommandType屬性該屬性是一個(gè)枚舉型數(shù)值,,,(5) Name屬性 該屬性是一個(gè)String型數(shù)據(jù),指出對(duì)象的名稱。 (6) Parameters屬性 該屬性是Parameters集合的一個(gè)應(yīng)用對(duì)象。包含要傳遞給一個(gè)存儲(chǔ)過程或一個(gè)參數(shù)化查詢的參數(shù)。 (7) Prepared屬性 該屬性是一個(gè)布爾型數(shù)值。當(dāng)取True時(shí),表示命令執(zhí)行之前將被優(yōu)化。 (8) Properties屬性 該屬

30、性是Properties集合的一個(gè)引用對(duì)象,包含關(guān)于Command對(duì)象的附加信息。 (9) State屬性 該屬性是一個(gè)Long型數(shù)值。指出Command對(duì)象的當(dāng)前狀態(tài)。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),,2.Command對(duì)象的方法 Command對(duì)象的方法如下。 (1)Cancel方法 (2) CreateParameter方法 (3)Execute方法3.Parameters集合和Pa

31、rameter對(duì)象 (1)Parameters集合 Parameters集合用在Command對(duì)象中,其作用是傳遞執(zhí)行CommandText命令所需要的參數(shù)。其主要屬性如下。 ● Count屬性 ● Item屬性 ● Append方法 ● Delete方法 ● Refresh方法,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),,(2) Parameter對(duì)象一個(gè)Parameter對(duì)象是Paramet

32、ers集合中的一個(gè)成員,其常用的屬性如下: ● Name屬性 ● Type屬性 ● Direction屬性 ● Size屬性 ● Value屬性14.2.4 Recordset 對(duì)象 在ADO的所有對(duì)象中,Recordset對(duì)象是使用最多的,它包含某個(gè)SQL查詢返回的數(shù)據(jù)庫(kù)記錄集,以及記錄集中的游標(biāo)(Cursor),Recordset對(duì)象是一個(gè)跟數(shù)據(jù)庫(kù)中的表相對(duì)應(yīng)的結(jié)構(gòu),也可以理解成具有字段(Fields)

33、和字段值(Value)的對(duì)象,在這些記錄中可以向前一條或向后一條移動(dòng)。,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),,1.Recordset對(duì)象的屬性 (1)AbsolutePage屬性 (2) AbsolutePosition屬性 (3) ActiveCommand屬性 (4) ActiveConnection屬性 (5) BOF和EOF屬性 ……2.Recordset對(duì)象的方法Recordset對(duì)象的方法如

34、下。 (1) AddNew方法 (2)Cancel方法 (3)CancelBatch方法 ( 4 ) CancelUpdate方法 (5)Clone方法 ……,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),,3.Recordset對(duì)象的事件 (1)EndOfRecordset事件 (2) FetchComplete事件 (3) FetchProgress事件 (4) FieldChangeComplete

35、事件 (5)MoveComplete事件 ……,14. 2使用ADO操作數(shù)據(jù)庫(kù)中的數(shù)據(jù),,ADO .NET由Microsoft ActiveX Data Objects (ADO)改進(jìn)而來,它提供平臺(tái)互用和可收縮的數(shù)據(jù)訪問功能。它雖然始于ADO,是一個(gè)改進(jìn)了的ADO的新版本,但ADO. NET最終演變成了一個(gè)和ADO非常不同的技術(shù)。ADO. NET的應(yīng)用重點(diǎn)是Internet和基于Web的應(yīng)用程序??梢詫DO. NET對(duì)

36、象模型劃分為兩個(gè)組件:DataSet和數(shù)據(jù)提供程序。DataSet是一個(gè)特殊的對(duì)象,它包含有一個(gè)或者多個(gè)表。數(shù)據(jù)提供程序則是由Connection、Command、DataReader和DataAdapter組合而成的。,14.3 ADO.NET,,ADO.NET數(shù)據(jù)對(duì)象如下: (1) Command對(duì)象 用于定義要在DBMS上執(zhí)行的操作,如添加、刪除或者更新一條記錄。在通常情況下,并不需要使用ADO. NET創(chuàng)建一個(gè)Co

37、mmand對(duì)象,除非需要完成特殊的工作。在DataAdapter對(duì)象中,已經(jīng)包含了查詢、刪除、插入和編輯記錄所需的Command對(duì)象。 (2) Connection對(duì)象 在DBMS和DataAdapter對(duì)象之間直接創(chuàng)建物理連接。Connection對(duì)象是數(shù)據(jù)提供程序的具體體現(xiàn)。它也包含有用于優(yōu)化分布式應(yīng)用程序環(huán)境下的連接的邏輯。(3) DataAdapter對(duì)象 將DBMS中的原始數(shù)據(jù)轉(zhuǎn)換為DataSet可以接受的

38、形式。DataAdapter完成所有的查詢,將數(shù)據(jù)從一種格式轉(zhuǎn)換為另外一種格式,它甚至可以完成表的映射。,14.3 ADO.NET,精品課件!,精品課件!,,一個(gè)DataAdapter可以管理一個(gè)數(shù)據(jù)庫(kù)關(guān)系。它的結(jié)果集可以具有任意級(jí)別的復(fù)雜性,但必須是單個(gè)的結(jié)果集。DataAdapter也負(fù)責(zé)發(fā)送要求建立新連接的請(qǐng)求,并在獲取數(shù)據(jù)之后終止連接。 (4) DataReader對(duì)象提供到數(shù)據(jù)庫(kù)的活動(dòng)連接。但是,它只提供了讀取數(shù)據(jù)庫(kù)的方

39、法。此外,DataReader的游標(biāo)只能向前移動(dòng)。如果你需要對(duì)本地表進(jìn)行快速地檢索,而不需要完成任何的更新操作,那么就應(yīng)當(dāng)使用這個(gè)對(duì)象。DataReader會(huì)阻塞DataAdapter,以及相關(guān)的連接對(duì)象,所以,在用完DataReade:對(duì)象之后立即將其關(guān)閉是非常重要的。 (5) DataSet對(duì)象該對(duì)象是ADO.NET的核心,可以認(rèn)為它是位于內(nèi)存的數(shù)據(jù)庫(kù),它包含檢索自一個(gè)或者多個(gè)DataAdapter的數(shù)據(jù)的本地備份。由于Data

40、Set使用數(shù)據(jù)的本地備份,所以它到數(shù)據(jù)庫(kù)的連接不是活動(dòng)的。用戶對(duì)數(shù)據(jù)庫(kù)的本地備份進(jìn)行所有的修改,然后應(yīng)用程序會(huì)發(fā)出一個(gè)更新請(qǐng)求(可以以批處理模式進(jìn)行更新,或者也可以按照一次一條記錄的方式進(jìn)行更新)。DataSet會(huì)同時(shí)保留有關(guān)每個(gè)修改過的行的原始數(shù)據(jù)和當(dāng)前狀態(tài)的信息。如果它所保留的行的原始數(shù)據(jù)與數(shù)據(jù)庫(kù)中該行的數(shù)據(jù)相匹配,DataAdapter就會(huì)按照要求進(jìn)行更新。否則,DataAdapter就會(huì)返回一個(gè)錯(cuò)誤,應(yīng)用程序必須對(duì)這個(gè)錯(cuò)誤進(jìn)行處

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論