VB中ADO對(duì)象編程剖析_第1頁(yè)
VB中ADO對(duì)象編程剖析_第2頁(yè)
VB中ADO對(duì)象編程剖析_第3頁(yè)
VB中ADO對(duì)象編程剖析_第4頁(yè)
VB中ADO對(duì)象編程剖析_第5頁(yè)
已閱讀5頁(yè),還剩54頁(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)介

1、VB中ADO對(duì)象編程剖析VB中的中的ADO對(duì)象對(duì)象編程編程 補(bǔ)充內(nèi)容VB中ADO對(duì)象編程剖析ADO(ActiveX Data Objects) ActiveX數(shù)據(jù)對(duì)象n是微軟最新的數(shù)據(jù)訪問(wèn)技術(shù),與OLE DB一起工作。 OLE DB是一個(gè)低層的基于COM 的數(shù)據(jù)訪問(wèn)接口,它向應(yīng)用程序提供了一個(gè)統(tǒng)一的數(shù)據(jù)訪問(wèn)方法,用它可以訪問(wèn)各種數(shù)據(jù)源,包括關(guān)系型數(shù)據(jù)庫(kù)、電子郵件系統(tǒng)、自定義的商業(yè)對(duì)象。n其模型如下:VB中ADO對(duì)象編程剖析VB應(yīng)用程序ADOOLE DBRDBMSEmail目錄管理VB中ADO對(duì)象編程剖析先在VB工程中把ADO對(duì)象庫(kù)加載上工程 引用 選中microsoft activex dat

2、a object 2.7 libraryVB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析一、通過(guò)一、通過(guò)DSN建立連接建立連接nDSN:應(yīng)用程序用以請(qǐng)求一個(gè)連到應(yīng)用程序用以請(qǐng)求一個(gè)連到ODBC(open database connectivity,開(kāi)開(kāi)放數(shù)據(jù)庫(kù)互連放數(shù)據(jù)庫(kù)互連)數(shù)據(jù)源的連接的名字。數(shù)據(jù)源的連接的名字。n也就是說(shuō)他代表也就是說(shuō)他代表ODBC連接的名字,隱連接的名字,隱藏了諸如數(shù)據(jù)庫(kù)名字、所在目錄、數(shù)據(jù)藏了諸如數(shù)據(jù)庫(kù)名字、所在目錄、數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序、用戶庫(kù)驅(qū)動(dòng)程序、用戶ID、密碼等,使具體、密碼等,使具體的數(shù)據(jù)庫(kù)對(duì)應(yīng)用程序變得透明。的數(shù)據(jù)庫(kù)對(duì)應(yīng)用程序變得透明。VB中ADO對(duì)象編程剖析

3、n1、DSN分類(lèi):n系統(tǒng)DSN:可以被登陸到系統(tǒng)中的所有用戶使用。n用戶DSN:為特定用戶建立的,只能被建立他的用戶使用。n文件DSN:用于文檔的DSN。VB中ADO對(duì)象編程剖析n2、如何建立Access的系統(tǒng)DSN:(Winxp)n(1)開(kāi)始 控制面板 性能維護(hù) 管理工具 數(shù)據(jù)源ODBC;n(2)單擊系統(tǒng)DSN選項(xiàng)卡 添加創(chuàng)建新數(shù)據(jù)源VB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析3、建立建立SQL Server系統(tǒng)系統(tǒng)DSNVB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析VB中ADO對(duì)象編程剖析

4、nDim cna as new adodb.connectionn Dim cnb as new adodb.connectionnPrivate sub command1_click()nDim cnastring as stringnCnastring=“dsn=sqlpubs;uid=sa;pwd=1234” SQL DSN 數(shù)據(jù)源的連接字符串nWith cnan .connectionstring=cnastringn .connectiontimeout=10n .opennEnd withn或:cna.open“dsn=sqlpubs;uid=sa;pwd=1234” Cna.cl

5、ose 關(guān)閉連接End subVB中ADO對(duì)象編程剖析nPrivate sub command2_click()nDim cnbstring as stringnCnbstring=“dsn=aa;uid=;pwd=” Access DSN 數(shù)據(jù)源的連接字符串nWith cnbn .connectionstring=cnastringn .connectiontimeout=10n .opennEnd withn或:cnb.open“dsn=aa;uid=;pwd=” Cnb.close 關(guān)閉連接End subVB中ADO對(duì)象編程剖析二、直接使用數(shù)據(jù)庫(kù)文件名n1、SQL Server 的連接字

6、符串n“driver=SQL Server;server=bjz;database=pubs;uid=sa;pwd=1234”n2、Access的連接字符串n(1)“driver=Microsoft access driver(*.mdb);DBQ=“ & app.path & “student.mdb”n(2)使用OLE DB 提供者建立連接nprovider=Microsoft.Jet.OLEDB.4.0;Data Source=“ & App.Path & ”student.mdb & “user id=;password=”VB中ADO對(duì)象編程剖析ADO中比較重要的是:Command,

7、Connection,Recordset對(duì)象n(1) Connection對(duì)象Connection對(duì)象用于建立與數(shù)據(jù)庫(kù)對(duì)象用于建立與數(shù)據(jù)庫(kù)的連接,通過(guò)連接可從應(yīng)用程序訪問(wèn)數(shù)的連接,通過(guò)連接可從應(yīng)用程序訪問(wèn)數(shù)據(jù)源據(jù)源.它保存諸如指針類(lèi)型它保存諸如指針類(lèi)型,連接字符串連接字符串,查詢超時(shí)查詢超時(shí),連接超時(shí)和缺省數(shù)據(jù)庫(kù)這樣的連接超時(shí)和缺省數(shù)據(jù)庫(kù)這樣的連接信息。連接信息。VB中ADO對(duì)象編程剖析n2) CommandCommand對(duì)象對(duì)象 在建立在建立ConnectionConnection后后, ,可以發(fā)出命令可以發(fā)出命令操作數(shù)據(jù)源。一般情況下操作數(shù)據(jù)源。一般情況下,Command,Command對(duì)

8、象對(duì)象可以在數(shù)據(jù)庫(kù)中添加可以在數(shù)據(jù)庫(kù)中添加, ,刪除或更新數(shù)據(jù)刪除或更新數(shù)據(jù), ,或者在表中進(jìn)行數(shù)據(jù)查詢。或者在表中進(jìn)行數(shù)據(jù)查詢。CommandCommand對(duì)象對(duì)象在定義查詢參數(shù)或執(zhí)行一個(gè)有輸出參數(shù)在定義查詢參數(shù)或執(zhí)行一個(gè)有輸出參數(shù)的存儲(chǔ)過(guò)程時(shí)非常有用。的存儲(chǔ)過(guò)程時(shí)非常有用。VB中ADO對(duì)象編程剖析n(3) RecordsetRecordset對(duì)象對(duì)象RecordsetRecordset對(duì)象只代表一個(gè)記錄集對(duì)象只代表一個(gè)記錄集, ,這個(gè)記這個(gè)記錄集是一個(gè)連接的數(shù)據(jù)庫(kù)中的表錄集是一個(gè)連接的數(shù)據(jù)庫(kù)中的表, ,或者是或者是CommandCommand對(duì)象的執(zhí)行結(jié)果返回的記錄集對(duì)象的執(zhí)行結(jié)果返回的記

9、錄集. .在在ADOADO對(duì)象模型中對(duì)象模型中, ,是在行中檢查和修改數(shù)據(jù)的最主是在行中檢查和修改數(shù)據(jù)的最主要的方法要的方法, ,所有對(duì)數(shù)據(jù)的操作幾乎都是在所有對(duì)數(shù)據(jù)的操作幾乎都是在RecordsetRecordset對(duì)象中完成的。對(duì)象中完成的。RecordRecord對(duì)象用于指對(duì)象用于指定行定行, ,移動(dòng)行移動(dòng)行, ,添加添加, ,更改更改, ,刪除記錄刪除記錄. .VB中ADO對(duì)象編程剖析n在實(shí)際編程過(guò)程中使用在實(shí)際編程過(guò)程中使用ADOADO的一個(gè)典型的的一個(gè)典型的存取數(shù)據(jù)的步驟為:存取數(shù)據(jù)的步驟為:1 1、 連接數(shù)據(jù)源連接數(shù)據(jù)源2 2、 打開(kāi)記錄集對(duì)象打開(kāi)記錄集對(duì)象3 3、 使用記錄集使

10、用記錄集4 4、 斷開(kāi)連接斷開(kāi)連接VB中ADO對(duì)象編程剖析n1 1、 如何連接數(shù)據(jù)源如何連接數(shù)據(jù)源利用利用ConnectionConnection對(duì)象可以創(chuàng)建一個(gè)數(shù)據(jù)源的對(duì)象可以創(chuàng)建一個(gè)數(shù)據(jù)源的連接連接. .應(yīng)用的方法是應(yīng)用的方法是ConnectionConnection對(duì)象的對(duì)象的OpenOpen方法方法. .語(yǔ)法語(yǔ)法: :ConnectionConnection對(duì)象對(duì)象.Open ConnectionString, .Open ConnectionString, UserID, PassWord, OpenOptionsUserID, PassWord, OpenOptions其中:其中:

11、ConnectionConnection對(duì)象為你定義的對(duì)象為你定義的ConnectionConnection對(duì)象的對(duì)象的實(shí)例實(shí)例; ;ConnectionStringConnectionString為可選項(xiàng)為可選項(xiàng), ,包含了連接的數(shù)包含了連接的數(shù)據(jù)庫(kù)的信息據(jù)庫(kù)的信息; ;UserID UserID 可選項(xiàng)可選項(xiàng), ,包含建立連接的用戶名包含建立連接的用戶名; ;PassWordPassWord為可選項(xiàng)為可選項(xiàng), ,包含建立連接的用戶密碼包含建立連接的用戶密碼; ;OpenOptionsOpenOptions為可選項(xiàng)為可選項(xiàng), ,假如設(shè)置為假如設(shè)置為dConnectAsync,dConnect

12、Async,則連接將異步打開(kāi)則連接將異步打開(kāi). .VB中ADO對(duì)象編程剖析n2.2.打開(kāi)記錄集對(duì)象打開(kāi)記錄集對(duì)象實(shí)際上記錄集返回的是一個(gè)從數(shù)據(jù)實(shí)際上記錄集返回的是一個(gè)從數(shù)據(jù)庫(kù)取回的查詢結(jié)果集庫(kù)取回的查詢結(jié)果集. .因此有三種打開(kāi)方因此有三種打開(kāi)方法法: :n一種使用記錄集的一種使用記錄集的OpenOpen方法。方法。n另一種是用另一種是用ConnectionConnection對(duì)象的對(duì)象的ExecuteExecute方方法法. . n一種是用一種是用CommandCommand對(duì)象的對(duì)象的ExecuteExecute方法方法. .VB中ADO對(duì)象編程剖析n(a)(a)記錄集的記錄集的OpenO

13、pen方法方法語(yǔ)法語(yǔ)法: :Recordset.Open Source, ActiveConnection, Recordset.Open Source, ActiveConnection, CursorType, LockType, OptionsCursorType, LockType, Options其中:其中:RecordsetRecordset為所定義的記錄集對(duì)象的實(shí)例為所定義的記錄集對(duì)象的實(shí)例. .SourceSource可選項(xiàng)可選項(xiàng), ,指明了所打開(kāi)的記錄源信息指明了所打開(kāi)的記錄源信息. .可以是可以是合法的命令合法的命令, ,對(duì)象變量名對(duì)象變量名,SQL,SQL語(yǔ)句語(yǔ)句, ,表

14、名表名, ,存儲(chǔ)過(guò)程調(diào)用存儲(chǔ)過(guò)程調(diào)用, ,或保存記錄集的文件名或保存記錄集的文件名. .ActiveConnectionActiveConnection可選項(xiàng)可選項(xiàng), ,合法的已打開(kāi)的合法的已打開(kāi)的ConnectionConnection對(duì)象的變量名對(duì)象的變量名, ,或者是包含或者是包含ConnectionStringConnectionString參數(shù)的字符串參數(shù)的字符串. .CursorTypeCursorType可選項(xiàng)可選項(xiàng), ,確定打開(kāi)記錄集對(duì)象使用的指確定打開(kāi)記錄集對(duì)象使用的指針類(lèi)型針類(lèi)型. .LockTypeLockType可選項(xiàng)可選項(xiàng) 確定打開(kāi)記錄集對(duì)象使用的鎖定確定打開(kāi)記錄集對(duì)

15、象使用的鎖定類(lèi)型類(lèi)型. .VB中ADO對(duì)象編程剖析n(b)Connection(b)Connection對(duì)象的對(duì)象的ExecuteExecute方法方法語(yǔ)法語(yǔ)法: :Set Set recordset=Connection.Execute(CommandText,recordset=Connection.Execute(CommandText,RecordsAffected,Options)RecordsAffected,Options)參數(shù)說(shuō)明參數(shù)說(shuō)明: : CommandText CommandText 一個(gè)字符串一個(gè)字符串, ,返回要執(zhí)行的返回要執(zhí)行的SQLSQL命令命令, ,表名表名,

16、 ,存儲(chǔ)過(guò)程或指定文本存儲(chǔ)過(guò)程或指定文本. .RecordsAffected RecordsAffected 可選項(xiàng)可選項(xiàng),Long,Long類(lèi)型的值類(lèi)型的值, ,返回操作影響的記錄數(shù)返回操作影響的記錄數(shù). .Options Options 可選項(xiàng)可選項(xiàng),Long,Long類(lèi)型值類(lèi)型值, ,指明如何處指明如何處理理CommandTextCommandText參數(shù)參數(shù). .VB中ADO對(duì)象編程剖析n(c) CommandCommand對(duì)象的對(duì)象的ExecuteExecute方法方法使用使用Command對(duì)象的對(duì)象的Execute方法執(zhí)行方法執(zhí)行CommandText屬性中設(shè)置的屬性中設(shè)置的SQL

17、命令命令,返回查詢返回查詢記錄集記錄集.語(yǔ)法如下語(yǔ)法如下:Command.Execute RecordsAffected, Parameters, Options 不返回記錄集不返回記錄集或者或者 Set Recordset=command.Execute(RecordsAffected,Parameters,Options) 返回記錄集返回記錄集CommandText的語(yǔ)法為的語(yǔ)法為:Command.CommandText=stringvariable其中其中: stringvariable為字符串變量為字符串變量,包含包含SQL語(yǔ)句語(yǔ)句,表名或存儲(chǔ)過(guò)程表名或存儲(chǔ)過(guò)程.VB中ADO對(duì)象編程剖

18、析n3.3.使用記錄集使用記錄集(a)(a)添加新的記錄添加新的記錄: :在在ADOADO中添加新的記錄用的方法為中添加新的記錄用的方法為:AddNew :AddNew 它它的語(yǔ)法為的語(yǔ)法為: :Recordset.AddNew FieldList, ValuesRecordset.AddNew FieldList, ValuesRecordsetRecordset為記錄集對(duì)象實(shí)例為記錄集對(duì)象實(shí)例FieldListFieldList為一個(gè)字段名為一個(gè)字段名, ,或者是一個(gè)字段數(shù)或者是一個(gè)字段數(shù)組組. .ValuesValues為給要加信息的字段賦的值為給要加信息的字段賦的值, ,如果為一如果為

19、一個(gè)字段名個(gè)字段名, ,那么那么ValuesValues應(yīng)為一個(gè)單個(gè)的數(shù)值應(yīng)為一個(gè)單個(gè)的數(shù)值, ,假如假如為一個(gè)字段數(shù)組為一個(gè)字段數(shù)組, ,那么那么ValuesValues必須也為一個(gè)個(gè)數(shù)必須也為一個(gè)個(gè)數(shù), ,類(lèi)型與類(lèi)型與FieldListFieldList相同的數(shù)組相同的數(shù)組. .當(dāng)用當(dāng)用AddNewAddNew方法為記錄集添加新的記錄后方法為記錄集添加新的記錄后, ,應(yīng)應(yīng)使用使用UpDateUpDate將所添加的的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中將所添加的的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中. . (記錄的修改)(記錄的修改)VB中ADO對(duì)象編程剖析(b)(b)刪除記錄刪除記錄在在ADOADO中刪除記錄集中的數(shù)據(jù)的方法

20、中刪除記錄集中的數(shù)據(jù)的方法為為:Delete:Delete方法方法, ,這與這與DAODAO對(duì)象的方法相同對(duì)象的方法相同, ,但但是在是在ADOADO中它的能力增強(qiáng)了中它的能力增強(qiáng)了, ,可以刪掉一組記可以刪掉一組記錄了錄了. .它的語(yǔ)法如下它的語(yǔ)法如下: :Recordset.Delete AffectRecordsRecordset.Delete AffectRecords其中的其中的,AffectRecords,AffectRecords參數(shù)是確定參數(shù)是確定DeleteDelete方法作用的方式的方法作用的方式的, ,它的取值如下它的取值如下: :adAffectCurrent adAf

21、fectCurrent 只刪除當(dāng)前的記錄只刪除當(dāng)前的記錄adAffectGroup adAffectGroup 刪除符合刪除符合FilterFilter屬性設(shè)屬性設(shè)置的那些記錄置的那些記錄. .為了一次能刪除一組數(shù)據(jù)為了一次能刪除一組數(shù)據(jù), ,應(yīng)應(yīng)設(shè)置設(shè)置FilterFilter屬性屬性. .VB中ADO對(duì)象編程剖析(c)(c)查詢記錄查詢記錄在在ADOADO中查詢的方法很靈活中查詢的方法很靈活, ,有幾種查詢有幾種查詢的方法的方法. .使用連接對(duì)象的使用連接對(duì)象的ExecuteExecute方法執(zhí)行方法執(zhí)行SQLSQL命命令令, ,返回查詢記錄集返回查詢記錄集. .使用使用CommandCo

22、mmand對(duì)象的對(duì)象的ExecuteExecute方法執(zhí)行方法執(zhí)行CommandTextCommandText屬性中設(shè)置的屬性中設(shè)置的SQLSQL命令命令, ,返回查詢返回查詢記錄集記錄集. . 使用記錄集的使用記錄集的Open方法,返回查詢記錄方法,返回查詢記錄集。集。VB中ADO對(duì)象編程剖析4. 4. 斷開(kāi)連接斷開(kāi)連接在應(yīng)用程序結(jié)束之前在應(yīng)用程序結(jié)束之前, ,應(yīng)該釋放分配給應(yīng)該釋放分配給ADOADO對(duì)象的資源對(duì)象的資源, ,操作系統(tǒng)回收這些資源并可以再分操作系統(tǒng)回收這些資源并可以再分配給其他應(yīng)用程序配給其他應(yīng)用程序. .使用的方法為使用的方法為:Close:Close方法方法. .語(yǔ)法如下

23、語(yǔ)法如下: :Object.Close Object.Close Object Object為為ADOADO對(duì)象對(duì)象如果不做的話,通常如果不做的話,通常VisualBasicVisualBasic會(huì)自動(dòng)釋放和會(huì)自動(dòng)釋放和回收資源。回收資源。rs.Closers.CloseSet rs=NothingSet rs=NothingSet cmd=NothingSet cmd=Nothingcn.Closecn.CloseSet cn=Nothing Set cn=Nothing VB中ADO對(duì)象編程剖析二、二、 數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象(數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象(ADO)nADO(ActiveX Data Objec

24、ts)ActiveX數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象是是微軟最新的數(shù)據(jù)訪問(wèn)技術(shù),與微軟最新的數(shù)據(jù)訪問(wèn)技術(shù),與OLE DB一起一起工作。工作。n在在Visual Basic中使用中使用ADO 在一個(gè)打開(kāi)的在一個(gè)打開(kāi)的Visual Basic 6.0的工程中,選擇菜單的工程中,選擇菜單工程工程 / 引用引用命令,出現(xiàn)命令,出現(xiàn)“引用引用”對(duì)話框。在對(duì)話框。在“可用的引用可用的引用”列表框中選擇列表框中選擇Microsoft ActiveX Data Objects 2.8 選項(xiàng),單擊選項(xiàng),單擊確定確定按鈕,就可以在程序按鈕,就可以在程序中加入對(duì)中加入對(duì)ADO的引用了。的引用了。VB中ADO對(duì)象編程剖析使用使用AD

25、O可以實(shí)現(xiàn)以下目的可以實(shí)現(xiàn)以下目的:連接一個(gè)本地?cái)?shù)據(jù)庫(kù)或遠(yuǎn)程數(shù)據(jù)庫(kù)連接一個(gè)本地?cái)?shù)據(jù)庫(kù)或遠(yuǎn)程數(shù)據(jù)庫(kù)打開(kāi)一個(gè)指定的數(shù)據(jù)庫(kù)表,或定義一個(gè)基于打開(kāi)一個(gè)指定的數(shù)據(jù)庫(kù)表,或定義一個(gè)基于結(jié)構(gòu)化查詢語(yǔ)言(結(jié)構(gòu)化查詢語(yǔ)言(SQL)的查詢或存儲(chǔ)過(guò)程)的查詢或存儲(chǔ)過(guò)程或該數(shù)據(jù)庫(kù)中的表的視圖的記錄集合或該數(shù)據(jù)庫(kù)中的表的視圖的記錄集合將數(shù)據(jù)字段的值傳遞給數(shù)據(jù)綁定的控件,可將數(shù)據(jù)字段的值傳遞給數(shù)據(jù)綁定的控件,可以在這些控件中顯示或更改這些數(shù)值以在這些控件中顯示或更改這些數(shù)值a)添加新的記錄,或根據(jù)對(duì)綁定的控件中的數(shù)添加新的記錄,或根據(jù)對(duì)綁定的控件中的數(shù)據(jù)的更改來(lái)更新一個(gè)數(shù)據(jù)庫(kù)據(jù)的更改來(lái)更新一個(gè)數(shù)據(jù)庫(kù)VB中ADO對(duì)象編程剖

26、析ADO的內(nèi)置對(duì)象的內(nèi)置對(duì)象1、連接對(duì)象(、連接對(duì)象( Connection ) 用來(lái)與數(shù)據(jù)庫(kù)建立連接。在建立連接前,最主要的是需要設(shè)置用來(lái)與數(shù)據(jù)庫(kù)建立連接。在建立連接前,最主要的是需要設(shè)置連接字符串,用來(lái)指定連接數(shù)據(jù)庫(kù)所用的驅(qū)動(dòng)程序、數(shù)據(jù)源名連接字符串,用來(lái)指定連接數(shù)據(jù)庫(kù)所用的驅(qū)動(dòng)程序、數(shù)據(jù)源名稱、用戶名和密碼等。稱、用戶名和密碼等。常用的屬性與方法:常用的屬性與方法:ConnectionString屬性:連接字符串,在打開(kāi)連接前需要設(shè)置屬性:連接字符串,在打開(kāi)連接前需要設(shè)置 ConnectionTimeout和和Mode屬性:超時(shí)時(shí)間和連接模式,一屬性:超時(shí)時(shí)間和連接模式,一般在打開(kāi)連接前

27、也需要設(shè)置般在打開(kāi)連接前也需要設(shè)置 CursorLocation屬性:設(shè)置或者返回游標(biāo)位置屬性:設(shè)置或者返回游標(biāo)位置 DefaultDatabase屬性:為連接指定一個(gè)默認(rèn)的據(jù)庫(kù)屬性:為連接指定一個(gè)默認(rèn)的據(jù)庫(kù) Provider屬性:為連接指定一個(gè)驅(qū)動(dòng)程序,可以包括在屬性:為連接指定一個(gè)驅(qū)動(dòng)程序,可以包括在ConnectionString 中中 Open,Close 方法:建立或中斷一個(gè)連接方法:建立或中斷一個(gè)連接 Execute方法:在連接上執(zhí)行命令,比如執(zhí)行一個(gè)方法:在連接上執(zhí)行命令,比如執(zhí)行一個(gè)SQL語(yǔ)句語(yǔ)句 Errors對(duì)象:數(shù)據(jù)源返回的錯(cuò)誤信息對(duì)象:數(shù)據(jù)源返回的錯(cuò)誤信息 (eg)VB中

28、ADO對(duì)象編程剖析 “連接連接”是交換數(shù)據(jù)所必需的環(huán)境,通過(guò)是交換數(shù)據(jù)所必需的環(huán)境,通過(guò)“連接連接”可使應(yīng)可使應(yīng)用程序訪問(wèn)數(shù)據(jù)源。用程序訪問(wèn)數(shù)據(jù)源。 Connection對(duì)象用于指定專門(mén)的提對(duì)象用于指定專門(mén)的提供者和任意參數(shù)。下表供者和任意參數(shù)。下表 列出列出Connection對(duì)象的常用屬性和對(duì)象的常用屬性和方法。方法。 ConnectionString屬性屬性指定到數(shù)據(jù)源的連接字符串指定到數(shù)據(jù)源的連接字符串Open方法方法打開(kāi)到數(shù)據(jù)源的連接打開(kāi)到數(shù)據(jù)源的連接Execute方法方法對(duì)連接執(zhí)行各種操作對(duì)連接執(zhí)行各種操作Cancel方法方法取消取消Open或或 Execute方法的方法的調(diào)用調(diào)用

29、Close方法方法關(guān)閉打開(kāi)的關(guān)閉打開(kāi)的Connection對(duì)象對(duì)象 VB中ADO對(duì)象編程剖析如何連接如何連接n利用利用ConnectionConnection對(duì)象可以創(chuàng)建一個(gè)數(shù)據(jù)源的連接對(duì)象可以創(chuàng)建一個(gè)數(shù)據(jù)源的連接. .應(yīng)用應(yīng)用的方法是的方法是ConnectionConnection對(duì)象的對(duì)象的OpenOpen方法方法. .語(yǔ)法語(yǔ)法: :ConnectionConnection對(duì)象對(duì)象.Open ConnectionString, UserID, .Open ConnectionString, UserID, PassWord, OpenOptionsPassWord, OpenOptions

30、其中:其中:ConnectionConnection對(duì)象為你定義的對(duì)象為你定義的ConnectionConnection對(duì)象的實(shí)例對(duì)象的實(shí)例; ;ConnectionStringConnectionString為可選項(xiàng)為可選項(xiàng), ,包含了連接的數(shù)據(jù)庫(kù)包含了連接的數(shù)據(jù)庫(kù)的信息的信息; ;UserID UserID 可選項(xiàng)可選項(xiàng), ,包含建立連接的用戶名包含建立連接的用戶名; ;PassWordPassWord為可選項(xiàng)為可選項(xiàng), ,包含建立連接的用戶密碼包含建立連接的用戶密碼; ;OpenOptionsOpenOptions為可選項(xiàng)為可選項(xiàng), ,假如設(shè)置為假如設(shè)置為adConnectAsync,a

31、dConnectAsync,則連接將異步打開(kāi)則連接將異步打開(kāi). .VB中ADO對(duì)象編程剖析直接使用數(shù)據(jù)庫(kù)文件名建立連接1、SQL Server 的連接字符串的連接字符串“driver=SQL Server;server=;database=student;uid=sa;pwd=xxxx”2、Access的連接字符串的連接字符串(1)“driver=Microsoft access driver(*.mdb);DBQ=“ & app.path & “student.mdb”(2)使用OLE DB 提供者建立連接provider=Microsoft.Jet.OLEDB.4.0;D

32、ata Source=“ & App.Path & ”student.mdb & “user id=;password=”VB中ADO對(duì)象編程剖析2、命令對(duì)象(、命令對(duì)象(Command)定義了數(shù)據(jù)庫(kù)的一系列操作。使用命令對(duì)象來(lái)查詢數(shù)據(jù)定義了數(shù)據(jù)庫(kù)的一系列操作。使用命令對(duì)象來(lái)查詢數(shù)據(jù)庫(kù),查詢結(jié)果以數(shù)據(jù)集對(duì)象(庫(kù),查詢結(jié)果以數(shù)據(jù)集對(duì)象(Recordset)形式返回。命)形式返回。命令對(duì)象在操縱數(shù)據(jù)庫(kù)前需要與一個(gè)已經(jīng)打開(kāi)的連接對(duì)象令對(duì)象在操縱數(shù)據(jù)庫(kù)前需要與一個(gè)已經(jīng)打開(kāi)的連接對(duì)象(Connection)建立關(guān)聯(lián)。)建立關(guān)聯(lián)。常用的屬性與方法:常用的屬性與方法: ActiveConnection屬性:

33、將一個(gè)命令行對(duì)象與一個(gè)打開(kāi)的屬性:將一個(gè)命令行對(duì)象與一個(gè)打開(kāi)的連接關(guān)聯(lián)連接關(guān)聯(lián) CommandText屬性:定義命令行的內(nèi)容,比如屬性:定義命令行的內(nèi)容,比如SQL語(yǔ)句等語(yǔ)句等 CommandType屬性:指定命令的類(lèi)型屬性:指定命令的類(lèi)型 CommandTimeout屬性:指定服務(wù)器等待一條命令執(zhí)行的屬性:指定服務(wù)器等待一條命令執(zhí)行的時(shí)間時(shí)間 Execute方法:執(zhí)行命令并返回一個(gè)數(shù)據(jù)集對(duì)象方法:執(zhí)行命令并返回一個(gè)數(shù)據(jù)集對(duì)象(Recordset)VB中ADO對(duì)象編程剖析ActiveConnection屬性屬性設(shè)置到數(shù)據(jù)源的連接信息設(shè)置到數(shù)據(jù)源的連接信息CommandText屬性屬性定義命令(

34、例如,定義命令(例如,SQL語(yǔ)句)的可執(zhí)行文本語(yǔ)句)的可執(zhí)行文本CommandType屬性屬性指定命令類(lèi)型以優(yōu)化性能指定命令類(lèi)型以優(yōu)化性能Execute方法方法執(zhí)行執(zhí)行CommandText屬性指定的操作屬性指定的操作Cancel方法方法取消取消Execute方法的調(diào)用方法的調(diào)用VB中ADO對(duì)象編程剖析3、數(shù)據(jù)集對(duì)象(、數(shù)據(jù)集對(duì)象(Recordset)定義了從數(shù)據(jù)庫(kù)返回的一系列記錄的集合。通過(guò)數(shù)定義了從數(shù)據(jù)庫(kù)返回的一系列記錄的集合。通過(guò)數(shù)據(jù)集可以對(duì)記錄及組成記錄的列進(jìn)行各種操作。據(jù)集可以對(duì)記錄及組成記錄的列進(jìn)行各種操作。常用的屬性與方法:常用的屬性與方法: RecordCount屬性:返回記錄

35、集中記錄的條數(shù)屬性:返回記錄集中記錄的條數(shù) BOF,EOF屬性:返回記錄集中游標(biāo)的當(dāng)前位置是否是記屬性:返回記錄集中游標(biāo)的當(dāng)前位置是否是記錄集的頭或尾錄集的頭或尾 MoveNext,MovePre:將記錄集中的游標(biāo)向后、前移動(dòng)將記錄集中的游標(biāo)向后、前移動(dòng)一個(gè)位置一個(gè)位置 MoveFirst,MoveLast:將記錄集中的游標(biāo)移動(dòng)到最前或?qū)⒂涗浖械挠螛?biāo)移動(dòng)到最前或最后最后VB中ADO對(duì)象編程剖析ActiveConnection屬性屬性返回返回Recordset對(duì)象所屬的對(duì)象所屬的Connection對(duì)象。對(duì)象。BOF和和EOF屬性屬性指示當(dāng)前記錄指針是否位于首記錄前、末記錄后。指示當(dāng)前記錄指針

36、是否位于首記錄前、末記錄后。Bookmark屬性屬性返回并設(shè)置當(dāng)前記錄的書(shū)簽返回并設(shè)置當(dāng)前記錄的書(shū)簽CursorType屬性屬性指定打開(kāi)指定打開(kāi)Recordset對(duì)象時(shí)應(yīng)該使用的游標(biāo)類(lèi)型對(duì)象時(shí)應(yīng)該使用的游標(biāo)類(lèi)型Filter屬性屬性設(shè)置設(shè)置Recordset對(duì)象中的篩選條件對(duì)象中的篩選條件RecordCount屬性屬性返回返回Recordset對(duì)象中記錄的數(shù)目對(duì)象中記錄的數(shù)目Sort屬性屬性設(shè)置排序字段設(shè)置排序字段Source屬性屬性指定指定Recordset對(duì)象的數(shù)據(jù)源:對(duì)象的數(shù)據(jù)源:Command對(duì)象變量、對(duì)象變量、SQL語(yǔ)句、存儲(chǔ)語(yǔ)句、存儲(chǔ)過(guò)程過(guò)程AddNew方法方法可創(chuàng)建和初始化新記錄可

37、創(chuàng)建和初始化新記錄CancelUpdate方法方法可取消對(duì)當(dāng)前記錄所作的任何更改或放棄新添加的記錄可取消對(duì)當(dāng)前記錄所作的任何更改或放棄新添加的記錄Delete方法方法刪除當(dāng)前記錄或記錄組刪除當(dāng)前記錄或記錄組Move方法方法移動(dòng)移動(dòng)Recordset對(duì)象中當(dāng)前記錄的位置對(duì)象中當(dāng)前記錄的位置MoveFirst、MoveLast、MoveNext和和MovePrevious方法方法移動(dòng)到指定移動(dòng)到指定Recordset對(duì)象中的第一個(gè)、最后一個(gè)、下一個(gè)或上一個(gè)記對(duì)象中的第一個(gè)、最后一個(gè)、下一個(gè)或上一個(gè)記錄并使該記錄成為當(dāng)前記錄錄并使該記錄成為當(dāng)前記錄Requery方法方法重新執(zhí)行對(duì)象所基于的查詢,來(lái)更

38、新重新執(zhí)行對(duì)象所基于的查詢,來(lái)更新Recordset對(duì)象中的數(shù)據(jù)對(duì)象中的數(shù)據(jù)Update方法方法保存對(duì)保存對(duì)Recordset對(duì)象的當(dāng)前記錄所做的所有更改對(duì)象的當(dāng)前記錄所做的所有更改VB中ADO對(duì)象編程剖析n打開(kāi)記錄集對(duì)象打開(kāi)記錄集對(duì)象實(shí)際上記錄集返回的是一個(gè)從數(shù)據(jù)實(shí)際上記錄集返回的是一個(gè)從數(shù)據(jù)庫(kù)取回的查詢結(jié)果集庫(kù)取回的查詢結(jié)果集. .因此他有三種打開(kāi)因此他有三種打開(kāi)方法方法: : 一種使用記錄集的一種使用記錄集的OpenOpen方法方法, , 另一種是用另一種是用ConnectionConnection對(duì)象的對(duì)象的ExecuteExecute方法方法. . 第三種是使用第三種是使用Comma

39、ndCommand對(duì)象的對(duì)象的ExecuteExecute方法執(zhí)行方法執(zhí)行CommandTextCommandText屬性中設(shè)置的屬性中設(shè)置的SQLSQL命令命令, ,返回查詢記返回查詢記錄集錄集. . VB中ADO對(duì)象編程剖析n1.1.記錄集的記錄集的OpenOpen方法方法語(yǔ)法語(yǔ)法: :Recordset.Open Source, ActiveConnection, CursorType, Recordset.Open Source, ActiveConnection, CursorType, LockType, OptionsLockType, Options其中:其中:Recordse

40、tRecordset為所定義的記錄集對(duì)象的實(shí)例為所定義的記錄集對(duì)象的實(shí)例. .SourceSource可選項(xiàng)可選項(xiàng), ,指明了所打開(kāi)的記錄源信息指明了所打開(kāi)的記錄源信息. .可以是合可以是合法的命令法的命令, ,對(duì)象變量名對(duì)象變量名,SQL,SQL語(yǔ)句語(yǔ)句, ,表名表名, ,存儲(chǔ)過(guò)程調(diào)用存儲(chǔ)過(guò)程調(diào)用, ,或?;虮4嬗涗浖奈募嬗涗浖奈募? .ActiveConnectionActiveConnection可選項(xiàng)可選項(xiàng), ,合法的已打開(kāi)的合法的已打開(kāi)的ConnectionConnection對(duì)象的變量名對(duì)象的變量名, ,或者是包含或者是包含ConnectionStringConnecti

41、onString參數(shù)的字符串參數(shù)的字符串. .CursorTypeCursorType可選項(xiàng)可選項(xiàng), ,確定打開(kāi)記錄集對(duì)象使用的指針類(lèi)確定打開(kāi)記錄集對(duì)象使用的指針類(lèi)型型. .LockTypeLockType可選項(xiàng)可選項(xiàng) 確定打開(kāi)記錄集對(duì)象使用的鎖定類(lèi)型確定打開(kāi)記錄集對(duì)象使用的鎖定類(lèi)型. .VB中ADO對(duì)象編程剖析使用使用recordset 的的 open方法返回記錄集:方法返回記錄集:dim cn as new adodb.connectiondim rs as new adodb.recordsetDim cnstring$,strsql$Cnstring=“driver=SQL Serve

42、r;server=;database=student;uid=sa;pwd=”Strsql =“select * from 基本情況 where 班級(jí)=”05網(wǎng)一“ or 班級(jí)=”05網(wǎng)二“”Cn.open cnstringRs.open strsql,cn,1,1記錄集類(lèi)型,1是鍵集游標(biāo)記錄集鎖類(lèi)型1:只讀3:開(kāi)放式可以u(píng)pdateVB中ADO對(duì)象編程剖析nCursorTypeCursorType(游標(biāo)類(lèi)型)有四種(游標(biāo)類(lèi)型)有四種: :程序中常用第二種AdOpenKeysetAdOpenKeyset,nAdOpenForwardOnlyAdOpenForwardOnly

43、= 0 只能用MoveNext讀取,并且打開(kāi)的同時(shí)建立的數(shù)據(jù)庫(kù)的備份,不能即時(shí)體現(xiàn)數(shù)據(jù)庫(kù)記錄狀態(tài),比如記錄的編輯和增刪.AdOpenKeysetAdOpenKeyset = 1 可上下滾動(dòng)的游標(biāo),給打開(kāi)的記錄創(chuàng)建了一個(gè)關(guān)鍵字列表,類(lèi)似記錄集的描述,訪問(wèn)的時(shí)候才去取得數(shù)據(jù)值,就是說(shuō)可以即時(shí)看到修改信息,但是不能即時(shí)得到數(shù)據(jù)是否刪除的信息,因?yàn)檫@個(gè)關(guān)鍵字列表是事先初始化好的.AdOpenDynamicAdOpenDynamic = 2 完全可滾動(dòng),可得到數(shù)據(jù)的最新?tīng)顟B(tài),執(zhí)行效率也會(huì)有所降低.AdOpenStaticAdOpenStatic = 3 完全可滾動(dòng),但是和adOpenKeyset類(lèi)似,它

44、先將數(shù)據(jù)庫(kù)備份文件之后進(jìn)行操作.可以斷開(kāi)數(shù)據(jù)庫(kù)連接后繼續(xù)使用.VB中ADO對(duì)象編程剖析nADO鎖的類(lèi)型有四種鎖的類(lèi)型有四種 :nAdLockReadOnly = 1只讀鎖只讀鎖,不能操作記錄不能操作記錄AdLockPessimistic= 2悲觀鎖悲觀鎖,操作者打開(kāi)之后立即上操作者打開(kāi)之后立即上鎖鎖,直到修改完成或者放棄修改為止直到修改完成或者放棄修改為止,此時(shí)其他人無(wú)法編輯此時(shí)其他人無(wú)法編輯.AdLockOptimistic= 3樂(lè)觀鎖樂(lè)觀鎖,當(dāng)記錄將要被更新的時(shí)候當(dāng)記錄將要被更新的時(shí)候才開(kāi)始上鎖才開(kāi)始上鎖,但是不能保證在提交修改之前是否有人改動(dòng)但是不能保證在提交修改之前是否有人改動(dòng)過(guò)過(guò).A

45、dLockBatchOptimistic= 4批量樂(lè)觀鎖批量樂(lè)觀鎖,SQL server中中要使用它要使用它,必須打開(kāi)一個(gè)可上下滾動(dòng)的游標(biāo)必須打開(kāi)一個(gè)可上下滾動(dòng)的游標(biāo),如如adOpenKeyset,adOpenStatic.VB中ADO對(duì)象編程剖析n2.Connection2.Connection對(duì)象的對(duì)象的ExecuteExecute方法方法語(yǔ)法語(yǔ)法: :nSet recordset=Set recordset=Connection.Execute(CommandText,RecordsAffected,OConnection.Execute(CommandText,RecordsAffec

46、ted,Options)ptions)參數(shù)說(shuō)明參數(shù)說(shuō)明: : CommandText CommandText 一個(gè)字符串一個(gè)字符串, ,返回要執(zhí)行的返回要執(zhí)行的SQLSQL命令命令, ,表名表名, ,存儲(chǔ)過(guò)程或指定文本存儲(chǔ)過(guò)程或指定文本. .RecordsAffected RecordsAffected 可選項(xiàng)可選項(xiàng),Long,Long類(lèi)型的值類(lèi)型的值, ,返回操返回操作影響的記錄數(shù)作影響的記錄數(shù). .Options Options 可選項(xiàng)可選項(xiàng),Long,Long類(lèi)型值類(lèi)型值, ,指明如何處理指明如何處理CommandTextCommandText參數(shù)參數(shù). .VB中ADO對(duì)象編程剖析使用使

47、用connection 的的 execute方法返回記錄集:方法返回記錄集: dim cn as new adodb.connectiondim rs as new adodb.recordsetDim cnstring$,strsql$Cnstring=“driver=SQL Server;server=;database=student;uid=sa;pwd=”Strsql =“select * from 基本情況基本情況 where 班級(jí)班級(jí)=05網(wǎng)一網(wǎng)一 or 班級(jí)班級(jí)=05網(wǎng)二網(wǎng)二”Cn.open cnstringSet Rs=cn.execute (strsql)

48、VB中ADO對(duì)象編程剖析3.3.使用使用CommandCommand對(duì)象的對(duì)象的ExecuteExecute方法執(zhí)行方法執(zhí)行CommandTextCommandText屬性中設(shè)置的屬性中設(shè)置的SQLSQL命令命令, ,返回查詢記錄集返回查詢記錄集. .CommandCommand對(duì)象的對(duì)象的ExecuteExecute方法的語(yǔ)法如下方法的語(yǔ)法如下: :Command.Execute RecordsAffected, Parameters, Command.Execute RecordsAffected, Parameters, Options Options 不返回記錄集不返回記錄集或者或者

49、Set Rscordset=Set Rscordset=command.Execute(RecordsAffected,Parameters,Options) command.Execute(RecordsAffected,Parameters,Options) 返回記錄集返回記錄集CommandTextCommandText的語(yǔ)法為的語(yǔ)法為: :Command.CommandText=stringvariableCommand.CommandText=stringvariable其中其中: stringvariable: stringvariable為字符串變量為字符串變量, ,包含包含SQ

50、LSQL語(yǔ)句語(yǔ)句, ,表名或存儲(chǔ)過(guò)程表名或存儲(chǔ)過(guò)程. .VB中ADO對(duì)象編程剖析使用使用command對(duì)象對(duì)象 的的 execute方法返回記錄集:方法返回記錄集:dim cn as new adodb.connectiondim rs as new adodb.recordsetDim cmd as new mandDim cnstring$,strsql$Cnstring=“driver=SQL Server;server=;database=student;uid=sa;pwd=”Strsql =“select * from 基本情況基本情況 where 班級(jí)班級(jí)=05

51、網(wǎng)一網(wǎng)一 or 班級(jí)班級(jí)=05網(wǎng)二網(wǎng)二”Cn.open cnstringcmd.activeconnection=mandtext=strsqlSet Rs=cmd.executeVB中ADO對(duì)象編程剖析使用記錄集使用記錄集reordsetreordset(a)(a)添加新的記錄添加新的記錄: :在在ADOADO中添加新的記錄用的方法為中添加新的記錄用的方法為:AddNew :AddNew 它的語(yǔ)它的語(yǔ)法為法為: :Recordset.AddNew FieldList, ValuesRecordset.AddNew FieldList, ValuesRecordsetRecordset為記錄集

52、對(duì)象實(shí)例為記錄集對(duì)象實(shí)例FieldListFieldList為一個(gè)字段名為一個(gè)字段名, ,或者是一個(gè)字段數(shù)組或者是一個(gè)字段數(shù)組. .ValuesValues為給要加信息的字段賦的值為給要加信息的字段賦的值, ,如果為一個(gè)字如果為一個(gè)字段名段名, ,那么那么ValuesValues應(yīng)為一個(gè)單個(gè)的數(shù)值應(yīng)為一個(gè)單個(gè)的數(shù)值, ,假如為一個(gè)字假如為一個(gè)字段數(shù)組段數(shù)組, ,那么那么ValuesValues必須也為一個(gè)個(gè)數(shù)、類(lèi)型與必須也為一個(gè)個(gè)數(shù)、類(lèi)型與FieldListFieldList相同的數(shù)組相同的數(shù)組. .用完用完AddNewAddNew方法為記錄集添加新的記錄后方法為記錄集添加新的記錄后, ,應(yīng)使

53、用應(yīng)使用UpDateUpDate將所添加的的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中將所添加的的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中. .VB中ADO對(duì)象編程剖析(b)(b)刪除記錄刪除記錄在在ADOADO中刪除記錄集中的數(shù)據(jù)的方法中刪除記錄集中的數(shù)據(jù)的方法為為:Delete:Delete方法方法, ,這與這與DAODAO對(duì)象的方法相同對(duì)象的方法相同, ,但是在但是在ADOADO中它的能力增強(qiáng)了中它的能力增強(qiáng)了, ,可以刪掉一組記錄了可以刪掉一組記錄了. .它的語(yǔ)法如下它的語(yǔ)法如下: :Recordset.Delete AffectRecordsRecordset.Delete AffectRecords其中的其中的,AffectR

54、ecords,AffectRecords參數(shù)是確定參數(shù)是確定DeleteDelete方方法作用的方式的法作用的方式的, ,它的取值如下它的取值如下: :adAffectCurrent adAffectCurrent 只刪除當(dāng)前的記錄只刪除當(dāng)前的記錄adAffectGroup adAffectGroup 刪除符合刪除符合FilterFilter屬性設(shè)置的屬性設(shè)置的那些記錄那些記錄. .為了一次能刪除一組數(shù)據(jù)為了一次能刪除一組數(shù)據(jù), ,應(yīng)設(shè)置應(yīng)設(shè)置FilterFilter屬性屬性. .VB中ADO對(duì)象編程剖析(c)(c)查詢記錄查詢記錄在在ADOADO中查詢的方法很靈活中查詢的方法很靈活, ,有幾種查詢有幾種查詢的方法的方法. .實(shí)際上記錄集返回的是一個(gè)從數(shù)據(jù)庫(kù)取實(shí)際上記錄集返回的是一個(gè)從數(shù)據(jù)庫(kù)取回的查詢結(jié)果集回的查詢結(jié)

溫馨提示

  • 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)論