VisualBasic程序設(shè)計(jì)項(xiàng)目化教程 項(xiàng)目14 ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用
《VisualBasic程序設(shè)計(jì)項(xiàng)目化教程 項(xiàng)目14 ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用》由會(huì)員分享,可在線閱讀,更多相關(guān)《VisualBasic程序設(shè)計(jì)項(xiàng)目化教程 項(xiàng)目14 ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用(57頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社主編主編 管小清管小清 郭賀彬郭賀彬VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社項(xiàng)目十四:項(xiàng)目十四:ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用n項(xiàng)目功能描述項(xiàng)目功能描述:n本項(xiàng)目主要是了解本項(xiàng)目主要是了解ADO的主要功能與特性,的主要功能與特性,ADO對(duì)象對(duì)象模型簡(jiǎn)介及模型簡(jiǎn)介及ADO的編程模型。掌握的編程模型。掌握ADODC控件的主控件的主要屬性、常用方法及常用事件。掌握數(shù)據(jù)綁定控件的要屬性、常用方法及常用事件。掌握數(shù)據(jù)綁定控件的主要屬性、常用方法及常用事件。掌握在主要屬性
2、、常用方法及常用事件。掌握在Visual Basic中使用中使用ADO對(duì)象,進(jìn)行非編程式訪問(wèn)數(shù)據(jù)庫(kù)和對(duì)象,進(jìn)行非編程式訪問(wèn)數(shù)據(jù)庫(kù)和編程式訪問(wèn)數(shù)據(jù)庫(kù)編程式訪問(wèn)數(shù)據(jù)庫(kù)VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社項(xiàng)目十四:項(xiàng)目十四:ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用n項(xiàng)目主要知識(shí)點(diǎn):項(xiàng)目主要知識(shí)點(diǎn):n1關(guān)于關(guān)于ADOn2ADODC控件控件n3數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件n4在在Visual Basic中使用中使用ADO對(duì)象對(duì)象n項(xiàng)目實(shí)施步驟:項(xiàng)目實(shí)施步驟:n閱讀基礎(chǔ)知識(shí)閱讀基礎(chǔ)知識(shí)n實(shí)例操作實(shí)例操作n完成思考與練習(xí)題完成思考與練習(xí)題VBVB程序設(shè)計(jì)項(xiàng)目化教
3、程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1 基礎(chǔ)知識(shí)概述基礎(chǔ)知識(shí)概述n14.1.1關(guān)于關(guān)于ADOn1.ADO主要功能與特性主要功能與特性nADO(ActiveX Data Object,Active 數(shù)據(jù)對(duì)象)是基于數(shù)據(jù)對(duì)象)是基于OLE DB技術(shù)而設(shè)計(jì)的。是技術(shù)而設(shè)計(jì)的。是Microsoft提供的一種面向?qū)ο?,與語(yǔ)言無(wú)關(guān)的提供的一種面向?qū)ο?,與語(yǔ)言無(wú)關(guān)的基于應(yīng)用程序?qū)拥臄?shù)據(jù)訪問(wèn)接口。它是基于應(yīng)用程序?qū)拥臄?shù)據(jù)訪問(wèn)接口。它是DAO/RDO的后繼產(chǎn)物。的后繼產(chǎn)物。它主要特性:易于使用、可以訪問(wèn)多種數(shù)據(jù)源、訪問(wèn)速度快且效它主要特性:易于使用、可以訪問(wèn)多種數(shù)據(jù)源、訪問(wèn)速度快且效率
4、高、易于率高、易于Web應(yīng)用、技術(shù)編程接口豐富、低內(nèi)存支出和占用磁應(yīng)用、技術(shù)編程接口豐富、低內(nèi)存支出和占用磁盤空間較少。盤空間較少。ADO訪問(wèn)數(shù)據(jù)是通過(guò)訪問(wèn)數(shù)據(jù)是通過(guò)OLE DB來(lái)實(shí)現(xiàn)的,來(lái)實(shí)現(xiàn)的,OLE DB不僅能夠以不僅能夠以SQL Server、Oracle、Access等數(shù)據(jù)庫(kù)文件為訪問(wèn)等數(shù)據(jù)庫(kù)文件為訪問(wèn)對(duì)象,還可對(duì)對(duì)象,還可對(duì)Excel表格、文本文件、圖形文件、電子郵件等各表格、文本文件、圖形文件、電子郵件等各種各樣的數(shù)據(jù)通過(guò)統(tǒng)一的接口進(jìn)行存取。種各樣的數(shù)據(jù)通過(guò)統(tǒng)一的接口進(jìn)行存取。ADO與與OLE DB的關(guān)系的關(guān)系如圖如圖14-1所示:所示:VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教
5、程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1 基礎(chǔ)知識(shí)概述基礎(chǔ)知識(shí)概述圖 14-1 ADO與OLE DB的關(guān)系圖 14-1 ADO與OLE DB的關(guān)系VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1 基礎(chǔ)知識(shí)概述基礎(chǔ)知識(shí)概述n2ADO對(duì)象模型對(duì)象模型nADO集中了集中了DAO和和RDO的優(yōu)點(diǎn),且不像的優(yōu)點(diǎn),且不像DAO和和RDO那樣依賴于對(duì)象層次。那樣依賴于對(duì)象層次。ADO對(duì)對(duì)象模型定義了一個(gè)可編程的分層對(duì)象集合,象模型定義了一個(gè)可編程的分層對(duì)象集合,ADO模型主要由七個(gè)對(duì)象成員模型主要由七個(gè)對(duì)象成員Connection(連接)、(連接)、Comman
6、d(命令)、(命令)、RecordSet(記錄集)、(記錄集)、Error(錯(cuò)誤)、(錯(cuò)誤)、Parameter(參數(shù))、(參數(shù))、Field(字段)和(字段)和Property(屬性)以及四個(gè)集合對(duì)象(屬性)以及四個(gè)集合對(duì)象Errors、Parameters、Fields、Properties所組成。所組成。每個(gè)每個(gè) Connection、Command、Recordset和和Field對(duì)象都有對(duì)象都有Properties集合。集合。n它們之間的關(guān)系如圖它們之間的關(guān)系如圖14-2所示所示:網(wǎng)網(wǎng)圖 14-2 ADO對(duì)象模型關(guān)系圖 14-2 ADO對(duì)象模型關(guān)系VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)
7、目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1 基礎(chǔ)知識(shí)概述基礎(chǔ)知識(shí)概述n(1)Connection 對(duì)象對(duì)象n用于管理與數(shù)據(jù)庫(kù)的連接用于管理與數(shù)據(jù)庫(kù)的連接,通過(guò)連接可從應(yīng)用程序訪問(wèn)數(shù)據(jù)源,包括打通過(guò)連接可從應(yīng)用程序訪問(wèn)數(shù)據(jù)源,包括打開(kāi)和關(guān)閉連接以及運(yùn)行開(kāi)和關(guān)閉連接以及運(yùn)行SQL命令等,它保存諸如指針類型、連接字符串、命令等,它保存諸如指針類型、連接字符串、查詢超時(shí)、連接超時(shí)和缺省數(shù)據(jù)庫(kù)這樣的連接信息。它包含了關(guān)于目標(biāo)查詢超時(shí)、連接超時(shí)和缺省數(shù)據(jù)庫(kù)這樣的連接信息。它包含了關(guān)于目標(biāo)數(shù)據(jù)庫(kù)數(shù)據(jù)提供程序的相關(guān)信息。數(shù)據(jù)庫(kù)數(shù)據(jù)提供程序的相關(guān)信息。n(2)Command 對(duì)象對(duì)象n包含關(guān)于某個(gè)命令
8、,例如查詢字符串、參數(shù)定義等的信息。包含關(guān)于某個(gè)命令,例如查詢字符串、參數(shù)定義等的信息。n(3)Recordset對(duì)象對(duì)象n用來(lái)存儲(chǔ)數(shù)據(jù)操作返回的記錄集。用來(lái)存儲(chǔ)數(shù)據(jù)操作返回的記錄集。Recordset對(duì)象只代表一個(gè)記錄集,對(duì)象只代表一個(gè)記錄集,這個(gè)記錄集可以是一個(gè)數(shù)據(jù)庫(kù)中的表,或者是這個(gè)記錄集可以是一個(gè)數(shù)據(jù)庫(kù)中的表,或者是Command對(duì)象的執(zhí)行結(jié)對(duì)象的執(zhí)行結(jié)果返回的記錄集。在果返回的記錄集。在ADO對(duì)象模型中,是在行中檢查和修改數(shù)據(jù)的最對(duì)象模型中,是在行中檢查和修改數(shù)據(jù)的最主要的方法,所有對(duì)數(shù)據(jù)的操作幾乎都是在主要的方法,所有對(duì)數(shù)據(jù)的操作幾乎都是在Recordset對(duì)象中完成的。對(duì)象中完成
9、的。Recordset對(duì)象用于指定行、移動(dòng)行、添加、更改、刪除記錄。對(duì)象用于指定行、移動(dòng)行、添加、更改、刪除記錄。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1 基礎(chǔ)知識(shí)概述基礎(chǔ)知識(shí)概述n(4)Field 對(duì)象對(duì)象nField 對(duì)象對(duì)應(yīng)于數(shù)據(jù)庫(kù)表的字段或?qū)ο髮?duì)應(yīng)于數(shù)據(jù)庫(kù)表的字段或SQL查詢語(yǔ)句查詢語(yǔ)句Select關(guān)鍵字之后跟隨關(guān)鍵字之后跟隨著的域,寬限包含記錄集中數(shù)據(jù)的某單個(gè)列的信息。著的域,寬限包含記錄集中數(shù)據(jù)的某單個(gè)列的信息。n(5)Error對(duì)象對(duì)象n包含數(shù)據(jù)提供程序出錯(cuò)時(shí)的擴(kuò)展信息。包含數(shù)據(jù)提供程序出錯(cuò)時(shí)的擴(kuò)展信息。n(6)Parameter
10、對(duì)象對(duì)象nParameter 對(duì)象用于管理基于參數(shù)化查詢或存儲(chǔ)過(guò)程的對(duì)象用于管理基于參數(shù)化查詢或存儲(chǔ)過(guò)程的Command對(duì)象對(duì)象相關(guān)聯(lián)的某個(gè)參數(shù)或自變量的信息,這類相關(guān)聯(lián)的某個(gè)參數(shù)或自變量的信息,這類Command對(duì)象有一個(gè)包含其對(duì)象有一個(gè)包含其所有所有Parameter 對(duì)象的對(duì)象的 Parameters 集合。集合。n(7)Property對(duì)象對(duì)象n包含某個(gè)包含某個(gè) ADO 對(duì)象的提供程序定義的特征。對(duì)象的提供程序定義的特征。n掌握其中的掌握其中的Command、Connection、Recordset對(duì)象就可以實(shí)現(xiàn)基本對(duì)象就可以實(shí)現(xiàn)基本的數(shù)據(jù)庫(kù)操作。的數(shù)據(jù)庫(kù)操作。VBVB程序設(shè)計(jì)項(xiàng)目化教
11、程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1.2 ADO的編程模型的編程模型nADO編程模型描述了使用編程模型描述了使用ADO對(duì)象進(jìn)行編程所必須的幾個(gè)重要步對(duì)象進(jìn)行編程所必須的幾個(gè)重要步驟:驟:n1.連接數(shù)據(jù)源連接數(shù)據(jù)源n利用利用Connection對(duì)象的對(duì)象的Open方法可以創(chuàng)建一個(gè)數(shù)據(jù)源的連接。方法可以創(chuàng)建一個(gè)數(shù)據(jù)源的連接。n 語(yǔ)法:語(yǔ)法:Connection對(duì)象對(duì)象.Open ConnectionString,UserID,PassWord,OpenOptionsn其中:其中:Connection對(duì)象為定義的對(duì)象為定義的Connection對(duì)象的實(shí)例;對(duì)象的實(shí)例;nC
12、onnectionString為可選項(xiàng)為可選項(xiàng),包含了連接的數(shù)據(jù)庫(kù)的信息;包含了連接的數(shù)據(jù)庫(kù)的信息;n UserID 可選項(xiàng)可選項(xiàng),包含建立連接的用戶名;包含建立連接的用戶名;n PassWord為可選項(xiàng)為可選項(xiàng),包含建立連接的用戶密碼;包含建立連接的用戶密碼;VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1.2 ADO的編程模型的編程模型n2.打開(kāi)記錄集對(duì)象打開(kāi)記錄集對(duì)象n(1)方法一:)方法一:n語(yǔ)法:語(yǔ)法:Recordset.Open Source,ActiveConnection,CursorType,LockType,Optionsn 其中:其
13、中:Recordset為所定義的記錄集對(duì)象的實(shí)例。為所定義的記錄集對(duì)象的實(shí)例。n Source可選項(xiàng)可選項(xiàng),指明了所打開(kāi)的記錄源信息。指明了所打開(kāi)的記錄源信息。ActiveConnection可選項(xiàng),合法的已打開(kāi)的可選項(xiàng),合法的已打開(kāi)的Connection對(duì)象的對(duì)象的變量名或者是包含變量名或者是包含ConnectionString參數(shù)的字符串。參數(shù)的字符串。n CursorType可選項(xiàng),確定打開(kāi)記錄集對(duì)象使用的指針可選項(xiàng),確定打開(kāi)記錄集對(duì)象使用的指針類型。類型。n LockType可選項(xiàng),可選項(xiàng),確定打開(kāi)記錄集對(duì)象使用的鎖定類確定打開(kāi)記錄集對(duì)象使用的鎖定類型。型。VBVB程序設(shè)計(jì)項(xiàng)目化教程程
14、序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1.2 ADO的編程模型的編程模型n(2)方法二:)方法二:n語(yǔ)法:語(yǔ)法:Set Recordset=Connection.Execute_n (CommandText,RecordsAffected,Options)n 其中其中:CommandText 一個(gè)字符串,返回要執(zhí)行的一個(gè)字符串,返回要執(zhí)行的SQL命令、命令、表名、存儲(chǔ)過(guò)程或指定文本。表名、存儲(chǔ)過(guò)程或指定文本。n RecordsAffected 可選項(xiàng),可選項(xiàng),Long類型值類型值,返回操作影響的返回操作影響的記錄數(shù)。記錄數(shù)。nOptions 可選項(xiàng),可選項(xiàng),Long類型值,
15、指明如何處理類型值,指明如何處理CommandText參參數(shù)。數(shù)。n 打開(kāi)打開(kāi)Recordset對(duì)象之后,我們就可以使用它的對(duì)象之后,我們就可以使用它的addnew、delete、update、movenext、find等方法了。等方法了。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1.2 ADO的編程模型的編程模型n3.添加記錄添加記錄n添加新記錄的添加新記錄的AddNew方法方法n語(yǔ)法語(yǔ)法:Recordset.AddNew Fields,Valuesn 其中其中:Recordset為記錄集對(duì)象實(shí)例為記錄集對(duì)象實(shí)例n Fields為一個(gè)字段名,或者是
16、一個(gè)字段數(shù)組。為一個(gè)字段名,或者是一個(gè)字段數(shù)組。n Values為給要加信息的字段賦的值,如果為給要加信息的字段賦的值,如果Fileds為一個(gè)字段名,為一個(gè)字段名,那么那么Values應(yīng)為一個(gè)單個(gè)的數(shù)值。假如應(yīng)為一個(gè)單個(gè)的數(shù)值。假如Fileds為一個(gè)字段數(shù)組,為一個(gè)字段數(shù)組,那么那么Values必須也為一個(gè)個(gè)數(shù),類型與必須也為一個(gè)個(gè)數(shù),類型與Fields相同的數(shù)組。相同的數(shù)組。n 使用使用AddNew方法為記錄集添加新的記錄后,應(yīng)使用方法為記錄集添加新的記錄后,應(yīng)使用UpDate將所添加的的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。將所添加的的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利
17、水電出版社中國(guó)水利水電出版社14.1.2 ADO的編程模型的編程模型n4.修改記錄集修改記錄集n 用用SQL語(yǔ)句將要修改的字段的一個(gè)數(shù)據(jù)找出來(lái)重新賦值。語(yǔ)句將要修改的字段的一個(gè)數(shù)據(jù)找出來(lái)重新賦值。n5.刪除記錄的刪除記錄的Delete方法方法n 語(yǔ)法語(yǔ)法:Recordset.Delete AffectRecordsn其中其中:AffectRecords參數(shù)是確定參數(shù)是確定Delete方法作用的方式的。方法作用的方式的。n它的取值如下它的取值如下:adAffectCurrent 只刪除當(dāng)前的記錄。只刪除當(dāng)前的記錄。n adAffectGroup 刪除符合刪除符合Filter屬性設(shè)置的那些記錄。為
18、了一次能刪屬性設(shè)置的那些記錄。為了一次能刪除一組數(shù)據(jù),應(yīng)設(shè)置除一組數(shù)據(jù),應(yīng)設(shè)置Filter屬性。屬性。n6.查詢記錄查詢記錄n(1)方法一:)方法一:n使用連接對(duì)象的使用連接對(duì)象的Execute方法執(zhí)行方法執(zhí)行SQL命令,返回查詢記錄集。命令,返回查詢記錄集。n(2)方法二:)方法二:n 使用使用Command對(duì)象的對(duì)象的Execute方法執(zhí)行方法執(zhí)行CommandText屬性中設(shè)置的屬性中設(shè)置的SQL命令,返回查詢記錄集。命令,返回查詢記錄集。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.1.2 ADO的編程模型的編程模型n7.斷開(kāi)連接斷開(kāi)連接n 在應(yīng)
19、用程序結(jié)束之前在應(yīng)用程序結(jié)束之前,應(yīng)該釋放分配給應(yīng)該釋放分配給ADO對(duì)象對(duì)象的資源的資源,操作系統(tǒng)回收這些資源并可以再分配給其他應(yīng)操作系統(tǒng)回收這些資源并可以再分配給其他應(yīng)用程序用程序.n 使用的方法為使用的方法為:Close方法。方法。n語(yǔ)法:語(yǔ)法:ADO對(duì)象對(duì)象.Close VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社 14.2 ADODC控件控件 n14.2.1 ADODC控件控件n在在VB中,使用中,使用ADO訪問(wèn)數(shù)據(jù)庫(kù)主要有兩種方式,一種訪問(wèn)數(shù)據(jù)庫(kù)主要有兩種方式,一種是使用是使用ADO數(shù)據(jù)控件,通過(guò)對(duì)控件的綁定來(lái)訪問(wèn)數(shù)據(jù)數(shù)據(jù)控件,通過(guò)對(duì)控件的綁定來(lái)訪
20、問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),即非編程訪問(wèn)方式;另一種是使用庫(kù)中的數(shù)據(jù),即非編程訪問(wèn)方式;另一種是使用ADO對(duì)象模型,通過(guò)定義對(duì)象和編寫代碼來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的對(duì)象模型,通過(guò)定義對(duì)象和編寫代碼來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn),即編程訪問(wèn)方式,以下我們先介紹使用訪問(wèn),即編程訪問(wèn)方式,以下我們先介紹使用ADODC控件對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)??丶?duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。n1ADODC控件幾個(gè)重要的與數(shù)據(jù)庫(kù)有關(guān)的屬性,如控件幾個(gè)重要的與數(shù)據(jù)庫(kù)有關(guān)的屬性,如表表14-1所示:所示:VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社 14.2 ADODC控件控件 n表表 14-1 ADO控件屬性控件屬性CommandT
21、ype指示命令類型。取值為:1 adCmdText SQL 語(yǔ)句2 adCmdTable 表4 adCmdStoredProc存儲(chǔ)過(guò)程8 adCmdUnknown 其他類型ConnectionString支持連接字符串的OLEDB提供程序(打開(kāi)屬性頁(yè)-通用)。ConnectionTimeou在中止前等待打開(kāi)連接的時(shí)間量(單位秒)。CursorLocation決定時(shí)使用服務(wù)器端游標(biāo)還是客戶端游標(biāo)(使用哪個(gè)游標(biāo)引擎)。取值為:2 adUseServer3 adUseClientCursorType設(shè)置用于下一級(jí)Recordset的游標(biāo)類型。取值為:1 adOpenKeyset2 adOpenDyn
22、amic3 adOpenStaticPassword密碼-支持密碼的OLEDB提供程序。(打開(kāi)屬性頁(yè)-身份驗(yàn)證)RecordSourceRecordset源(adCommandText=SQL或者其它命令語(yǔ)法,adCommandTable=表名稱。)(打開(kāi)屬性頁(yè)-記錄源)UserName用戶名稱-支持用戶名稱的OLEDB提供程序VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社 14.2 ADODC控件控件 n2ADODC控件常用的方法控件常用的方法n(1)Refresh方法。方法。n該方法用于刷新與該方法用于刷新與ADODC控件連接的記錄集數(shù)據(jù)??丶B接的記錄集
23、數(shù)據(jù)。n(2)UpDateRecord方法方法n通過(guò)此方法可以將數(shù)據(jù)綁定控件上的當(dāng)前內(nèi)容寫入到數(shù)據(jù)庫(kù)。通過(guò)此方法可以將數(shù)據(jù)綁定控件上的當(dāng)前內(nèi)容寫入到數(shù)據(jù)庫(kù)。n(3)Close方法方法nClose方法主要用于關(guān)閉打開(kāi)的對(duì)象及相關(guān)對(duì)象。方法主要用于關(guān)閉打開(kāi)的對(duì)象及相關(guān)對(duì)象。n3ADODC控件的事件控件的事件nADODC控件的事件分為兩種類型即:控件的事件分為兩種類型即:Will事件和事件和Complete事件。事件。其中其中Will事件是在操作開(kāi)始之前調(diào)用,這時(shí)可能檢查或修改操作事件是在操作開(kāi)始之前調(diào)用,這時(shí)可能檢查或修改操作參數(shù),并且可以決定是取消操作還是允許完成操作。而參數(shù),并且可以決定是取消
24、操作還是允許完成操作。而Complete事件是在操作完成之后調(diào)用。事件是在操作完成之后調(diào)用。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社 14.2 ADODC控件控件 n(1)WillMove事件事件nWillMove事件在執(zhí)行更改事件在執(zhí)行更改Recordset中的當(dāng)前記錄操中的當(dāng)前記錄操作之前調(diào)用。而作之前調(diào)用。而MoveComplete事件則是在執(zhí)行更改事件則是在執(zhí)行更改Recordset中的當(dāng)前記錄操作之后被調(diào)用。執(zhí)行中的當(dāng)前記錄操作之后被調(diào)用。執(zhí)行Recordset.Open、Recordset.MoveNext、Recordset.Move、Re
25、cordset.MoveLast、Recordset.MoveFirst、Recordset.MovePrevious、Recordset.Bookmark、Recordset.AddNew、Recordset.Delete、Recordset.Requery等方法時(shí)觸等方法時(shí)觸發(fā)。發(fā)。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社 14.2 ADODC控件控件 n(2)WillChangField事件和事件和FieldChangComplete事件事件n WillChangeField 在在Recordset對(duì)象中對(duì)象中Field屬性值更改之前屬性值更改之前
26、調(diào)用。而調(diào)用。而FieldChangeComplete 在在Recordset對(duì)象中對(duì)象中Field屬性屬性值更改之后調(diào)用。值更改之后調(diào)用。執(zhí)行執(zhí)行Recordset.Update、Recordset.Delete、Recordset.CancelUpdate、Recordset.UpdateBatch、Recordset.CancelBatch 等方法時(shí)觸發(fā)。等方法時(shí)觸發(fā)。n(3)WillChangRecordSet事件事件n WillChangRecordSet發(fā)生在對(duì)發(fā)生在對(duì)Recordset對(duì)象進(jìn)行操作之對(duì)象進(jìn)行操作之前,而前,而nRecordSetChangComplete發(fā)生對(duì)發(fā)生
27、對(duì)Recordset對(duì)象進(jìn)行操作之后。對(duì)象進(jìn)行操作之后。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.2.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件n1數(shù)據(jù)綁定簡(jiǎn)述數(shù)據(jù)綁定簡(jiǎn)述nADODC控件只能連接數(shù)據(jù)庫(kù),產(chǎn)生記錄集。但不能顯示記錄集控件只能連接數(shù)據(jù)庫(kù),產(chǎn)生記錄集。但不能顯示記錄集中的數(shù)據(jù),要顯示記錄集中的數(shù)據(jù)必須通過(guò)能與它綁定的控件來(lái)中的數(shù)據(jù),要顯示記錄集中的數(shù)據(jù)必須通過(guò)能與它綁定的控件來(lái)實(shí)現(xiàn)。實(shí)現(xiàn)。數(shù)據(jù)庫(kù)記錄集數(shù)據(jù)綁定圖 14-3 數(shù)據(jù)綁定與數(shù)據(jù)庫(kù)和記錄集關(guān)系圖 14-3 數(shù)據(jù)綁定與數(shù)據(jù)庫(kù)和記錄集關(guān)系VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社
28、中國(guó)水利水電出版社14.2.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件n數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件n具有具有DataSource、DataField屬性的控件均可作為綁屬性的控件均可作為綁定控件定控件n(2)常用綁定控件)常用綁定控件nComBox,Label,TextBox等控件是較為常用的數(shù)據(jù)綁等控件是較為常用的數(shù)據(jù)綁定控件。定控件。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.2.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件n(3)專門與)專門與ADO控件綁定的控件綁定的ActiveX控件控件nDataList 數(shù)據(jù)列表控件數(shù)據(jù)列表控件n我們?cè)谙乱还?jié)將專門介紹我們?cè)谙乱还?jié)將專門介
29、紹ADO控件與控件與DataList控件結(jié)合顯示數(shù)據(jù)??丶Y(jié)合顯示數(shù)據(jù)。nDataGrid 數(shù)據(jù)網(wǎng)格控件數(shù)據(jù)網(wǎng)格控件n我們?cè)谙乱还?jié)將專門介紹我們?cè)谙乱还?jié)將專門介紹ADO控件與控件與DataGrid控件結(jié)合顯示數(shù)據(jù)??丶Y(jié)合顯示數(shù)據(jù)。nDataCombo 數(shù)據(jù)組合控件數(shù)據(jù)組合控件n(4)高級(jí)數(shù)據(jù)綁定控件)高級(jí)數(shù)據(jù)綁定控件nMi crosoft Hierarchical FlexGfid 分層式網(wǎng)格控件分層式網(wǎng)格控件nMicrosoft Chart 圖表控件圖表控件n以上控件中數(shù)據(jù)網(wǎng)格控件和圖表控件可以綁定到整個(gè)記錄集,而以上控件中數(shù)據(jù)網(wǎng)格控件和圖表控件可以綁定到整個(gè)記錄集,而其他控件只能綁定到記
30、錄集的某一個(gè)字段。其他控件只能綁定到記錄集的某一個(gè)字段。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.2.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件n2數(shù)據(jù)綁定方法數(shù)據(jù)綁定方法n(1)添加控件)添加控件n首先添加首先添加ADODC控件及綁定控件添加到窗體上??丶敖壎丶砑拥酱绑w上。n(2)設(shè)置)設(shè)置ADODC控件屬性控件屬性n設(shè)置設(shè)置ADODC控件的控件的ConnectionString,RecordSource,Password,UserName屬性,連接數(shù)據(jù)庫(kù)。屬性,連接數(shù)據(jù)庫(kù)。n(3)設(shè)置綁定控件的)設(shè)置綁定控件的DataSource屬性屬性n將綁定控件的將
31、綁定控件的DataSource屬性設(shè)為屬性設(shè)為ADODC控件的名稱??丶拿Q。n(4)設(shè)置綁定控件的)設(shè)置綁定控件的DateField屬性屬性n將綁定控件的將綁定控件的DateField屬性設(shè)為要顯示的字段名稱。屬性設(shè)為要顯示的字段名稱。n完成上述步驟后,即可通過(guò)綁定控件將數(shù)據(jù)顯示。完成上述步驟后,即可通過(guò)綁定控件將數(shù)據(jù)顯示。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3在在Visual Basic中使用中使用ADO對(duì)象對(duì)象n14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n我們以我們以SQL Server 2000數(shù)據(jù)庫(kù)為例。使用數(shù)據(jù)庫(kù)為例。使用ADODC
32、控控件,快速創(chuàng)建數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。件,快速創(chuàng)建數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。其中數(shù)據(jù)綁定控件可以是任何具有其中數(shù)據(jù)綁定控件可以是任何具有DataSource屬性的屬性的控件;數(shù)據(jù)提供者可以是任何符合控件;數(shù)據(jù)提供者可以是任何符合OLE DB規(guī)范的數(shù)據(jù)規(guī)范的數(shù)據(jù)源。源。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式nADODC控件和控件和DataList控件應(yīng)用實(shí)例控件應(yīng)用實(shí)例n(1)建立)建立login數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)n首先啟動(dòng)首先啟動(dòng)SQL Server 2000企業(yè)管理器,建立一個(gè)企業(yè)管理器,建立
33、一個(gè)login的數(shù)據(jù)的數(shù)據(jù)庫(kù),在庫(kù),在 login數(shù)據(jù)庫(kù)中建立數(shù)據(jù)庫(kù)中建立“用戶信息用戶信息”數(shù)據(jù)表,如圖數(shù)據(jù)表,如圖14-4所示:所示:圖 14-4 SQL Server 2000企業(yè)管理器建立數(shù)據(jù)庫(kù)和數(shù)據(jù)表VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n(2)添加)添加ADODC控件控件nADODC 控件是控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:?jiǎn)慰丶谑褂们氨仨毾葘⑵涮砑拥焦ぞ呦渲?。方法是:?jiǎn)螕魮簟肮こ坦こ獭薄安考考辈藛芜x項(xiàng),選中菜單選項(xiàng),選中“Microsoft ADO Data
34、 Control 6.0(OLE DB)”后,按后,按“確定確定”,此時(shí),此時(shí)ADO數(shù)據(jù)控件便出現(xiàn)在工具箱中,如圖數(shù)據(jù)控件便出現(xiàn)在工具箱中,如圖14-5所示:所示:圖圖 14-5 14-5 添加添加ADODCADODC控件控件VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n(3)設(shè)置)設(shè)置ADODC連接屬性連接屬性n將將ADODC控件添加到窗體上,其默認(rèn)的名稱屬性為控件添加到窗體上,其默認(rèn)的名稱屬性為“Adodc1”。右擊。右擊ADODC 控件,選控件,選“ADODC屬性屬性”,彈出,彈出“屬性頁(yè)屬性頁(yè)”對(duì)話框,如圖對(duì)話
35、框,如圖14-6所示:所示:圖 14-6 設(shè)置ADODC控件ConnectionString屬性VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社n點(diǎn)擊點(diǎn)擊 彈出屬性頁(yè)面,選彈出屬性頁(yè)面,選擇擇“通用通用”,選中,選中“使用連使用連接字符串接字符串”(也可以選擇(也可以選擇“ODBC數(shù)據(jù)源名稱數(shù)據(jù)源名稱”),),再單擊再單擊“生成生成”按鈕,彈出按鈕,彈出“數(shù)據(jù)鏈接屬性數(shù)據(jù)鏈接屬性”對(duì)話框。對(duì)話框。選擇選擇“提供程序提供程序”選項(xiàng)卡,選項(xiàng)卡,在列表中選擇在列表中選擇“Microsoft OLE DB Provider For SQL SERVER”選項(xiàng),如圖選項(xiàng),
36、如圖14-7所示,再單擊所示,再單擊“下一步下一步”按鈕。按鈕。圖 14-7 選擇OLE DB提供程序14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n指定服務(wù)器的名稱指定服務(wù)器的名稱和登錄信息并選擇和登錄信息并選擇本連接要使用的數(shù)本連接要使用的數(shù)據(jù)庫(kù)文件。單擊據(jù)庫(kù)文件。單擊“測(cè)試連接測(cè)試連接”按鈕按鈕以確定連接是否正以確定連接是否正常。若得到測(cè)試成常。若得到測(cè)試成功的消息,單擊功的消息,單擊“確定確定”按鈕以繼按鈕以繼續(xù),如圖續(xù),如圖14-8所示。所示。服務(wù)器名稱:機(jī)器名服務(wù)器名稱
37、:機(jī)器名實(shí)例名實(shí)例名圖 14-8 設(shè)置數(shù)據(jù)連接屬性VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n(4)設(shè)置)設(shè)置AD0DC數(shù)據(jù)源屬性數(shù)據(jù)源屬性n在在“屬性頁(yè)屬性頁(yè)”對(duì)話框中選擇對(duì)話框中選擇“記記錄源錄源”選項(xiàng)卡,在命令類型下拉選項(xiàng)卡,在命令類型下拉列表中選擇列表中選擇“2-adCmdTable”選項(xiàng),在表或存儲(chǔ)過(guò)程名稱下拉選項(xiàng),在表或存儲(chǔ)過(guò)程名稱下拉列表中選擇數(shù)據(jù)表列表中選擇數(shù)據(jù)表“用戶信息用戶信息”。(若選擇的命令類型為(若選擇的命令類型為“1-adCmdText”,則可在命令文本,則可在命令文本框中輸入框中輸入SQ
38、L查詢語(yǔ)查詢語(yǔ)句句,SELECT*from 用戶信息),用戶信息),然后單擊然后單擊“確定確定”按鈕,如圖按鈕,如圖14-9所示:所示:圖 14-9 設(shè)置記錄源VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n(5)在窗體上添加數(shù)據(jù))在窗體上添加數(shù)據(jù)綁定控件綁定控件n我們使用我們使用DataList數(shù)據(jù)數(shù)據(jù)綁定控件。綁定控件。DataList 控控件是件是ActiveX控件,在使控件,在使用前必須先將其添加到用前必須先將其添加到工具箱中。方法是:?jiǎn)喂ぞ呦渲?。方法是:?jiǎn)螕魮簟肮こ坦こ獭薄安考考辈藛芜x項(xiàng),選中菜單選項(xiàng),選中
39、“Microsoft DataList Control 6.0(SP3)”后,按后,按“確定確定”,此時(shí),此時(shí)DataList控件便出現(xiàn)在控件便出現(xiàn)在工具箱中。工具箱中。圖 14-9 將添加DataLIst控件添加到工具箱VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n(6)設(shè)置)設(shè)置DataList屬性屬性n 將將DataList與與ADODC1進(jìn)行綁定,如圖進(jìn)行綁定,如圖14-10所示:所示:圖 14-10 設(shè)置DataList屬性VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.
40、3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n(7)運(yùn)行程序)運(yùn)行程序n將數(shù)據(jù)表信息通過(guò)綁定控件將數(shù)據(jù)表信息通過(guò)綁定控件DataList顯示,如圖顯示,如圖14-11所示:所示:圖 14-11 在DataList控件中顯示用戶名VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n2ADODC控件和控件和DataGrid控件應(yīng)用實(shí)例控件應(yīng)用實(shí)例n(1)建立)建立login數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)n首先啟動(dòng)首先啟動(dòng)SQL Server 2000企業(yè)管理器,建立一企業(yè)管理器,建立一個(gè)個(gè)login的數(shù)據(jù)庫(kù),在的數(shù)據(jù)庫(kù),在login數(shù)據(jù)庫(kù)中建立數(shù)據(jù)庫(kù)中建立
41、“用戶用戶信息信息”數(shù)據(jù)表。數(shù)據(jù)表。n(2)添加)添加ADODC控件并設(shè)置屬性控件并設(shè)置屬性n方法同方法同ADODC控件和控件和DataList控件應(yīng)用實(shí)例,控件應(yīng)用實(shí)例,不再詳細(xì)介紹。不再詳細(xì)介紹。n(3)添加)添加DataGrid控件控件n在窗體上添加在窗體上添加ADO專用綁定控件專用綁定控件DataGrid控控件。件。DataGrid控件是控件是ActiveX控件,在使用前必控件,在使用前必須先將其添加到工具箱中。方法是:?jiǎn)螕繇毾葘⑵涮砑拥焦ぞ呦渲?。方法是:?jiǎn)螕簟肮すこ坛獭薄安考考辈藛芜x項(xiàng),選中菜單選項(xiàng),選中“Microsoft DataGrid Control 6.0(SP6)”后
42、,按后,按“確確定定”,此時(shí),此時(shí)DataList控件便出現(xiàn)在工具箱中控件便出現(xiàn)在工具箱中,如圖如圖14-12所示:所示:圖 14-12 添加DataGrid控件VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n設(shè)置設(shè)置DataGrid屬性屬性nDataGrid控件控件DataSource屬性如圖屬性如圖14-13所示:所示:圖 14-13 設(shè)置DataGrid的DataSource屬性VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n進(jìn)行數(shù)據(jù)綁定數(shù)據(jù)
43、:進(jìn)行數(shù)據(jù)綁定數(shù)據(jù):n右鍵單擊右鍵單擊DataGrid控件,選擇控件,選擇“檢索字段檢索字段”,進(jìn)行數(shù)據(jù)綁定,也可以選,進(jìn)行數(shù)據(jù)綁定,也可以選擇擇“屬性屬性DataField”進(jìn)行綁定。進(jìn)行綁定。n(4)運(yùn)行程序)運(yùn)行程序n運(yùn)行程序后,將數(shù)據(jù)表的信息通過(guò)數(shù)據(jù)綁定控件運(yùn)行程序后,將數(shù)據(jù)表的信息通過(guò)數(shù)據(jù)綁定控件DataGrid顯示出來(lái),如顯示出來(lái),如圖圖14-14所示:所示:圖 14-14 在DataGrid控件中顯示數(shù)據(jù)表“用戶信息”VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1非編程訪問(wèn)方式非編程訪問(wèn)方式n通過(guò)通過(guò)ADODC控件與控件與DataLi
44、st控件及控件及ADODC控件與控件與DataGrid控件結(jié)合,可實(shí)現(xiàn)控件結(jié)合,可實(shí)現(xiàn)SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)login中中“用戶信息用戶信息”表中數(shù)據(jù)的瀏覽功能。表中數(shù)據(jù)的瀏覽功能。ADODC控件還控件還可以和可以和TextBox控件、控件、DataCombo控件結(jié)合,顯示數(shù)控件結(jié)合,顯示數(shù)據(jù)表數(shù)據(jù)。據(jù)表數(shù)據(jù)。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n編程訪問(wèn)方式是使用編程訪問(wèn)方式是使用ADO 對(duì)象模型訪問(wèn)數(shù)據(jù)庫(kù)。為了對(duì)象模型訪問(wèn)數(shù)據(jù)庫(kù)。為了能夠在程序中使用能夠在程序中使用ADO對(duì)象編程,在連接數(shù)據(jù)庫(kù)前,對(duì)象
45、編程,在連接數(shù)據(jù)庫(kù)前,需要在需要在Visual Basic 6.0菜單菜單“工程工程”“引用引用”中中選擇選擇Microsoft ActiveX Data Objects 2.8 Library組組件。運(yùn)用件。運(yùn)用ADO對(duì)象模型的主要元素:對(duì)象模型的主要元素:Connection(連(連接)中的接)中的ConnectionString屬性進(jìn)行連接,屬性進(jìn)行連接,ConnectionString為可讀寫為可讀寫string類型,指定一個(gè)連類型,指定一個(gè)連接字符串,告訴接字符串,告訴ADO如何連接數(shù)據(jù)庫(kù)。如何連接數(shù)據(jù)庫(kù)。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版
46、社14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n1定義定義ADO對(duì)象用于設(shè)置打開(kāi)連接和產(chǎn)生記錄集對(duì)象用于設(shè)置打開(kāi)連接和產(chǎn)生記錄集n(1)聲明語(yǔ)句如下:)聲明語(yǔ)句如下:n Dim conn As New ADODB.Connection 定義連接對(duì)象定義連接對(duì)象n Dim rs As New ADODB.Recordset 定義記錄集對(duì)象定義記錄集對(duì)象n(2)創(chuàng)建對(duì)象實(shí)例)創(chuàng)建對(duì)象實(shí)例n定義定義ADO對(duì)象實(shí)例,聲明了對(duì)象以后,還需要?jiǎng)?chuàng)建對(duì)象實(shí)例,否對(duì)象實(shí)例,聲明了對(duì)象以后,還需要?jiǎng)?chuàng)建對(duì)象實(shí)例,否則不能使用。以下是兩條重要語(yǔ)句:則不能使用。以下是兩條重要語(yǔ)句:nSet conn=New ADODB.Con
47、nection 創(chuàng)建創(chuàng)建conn對(duì)象對(duì)象nSet rs=New ADODB.Recordset 創(chuàng)建創(chuàng)建rs對(duì)象對(duì)象VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n2數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)連接n設(shè)置設(shè)置Connection對(duì)象實(shí)例對(duì)象實(shí)例ConnectionString屬性連屬性連接到數(shù)據(jù)庫(kù)。有兩種方法:有源數(shù)據(jù)庫(kù)連接和無(wú)源數(shù)接到數(shù)據(jù)庫(kù)。有兩種方法:有源數(shù)據(jù)庫(kù)連接和無(wú)源數(shù)據(jù)庫(kù)連接據(jù)庫(kù)連接n(1)有源數(shù)據(jù)庫(kù)連接)有源數(shù)據(jù)庫(kù)連接n有源數(shù)據(jù)庫(kù)連接首要任務(wù)是要注冊(cè)數(shù)據(jù)源名稱有源數(shù)據(jù)庫(kù)連接首要任務(wù)是要注冊(cè)數(shù)據(jù)源名稱(DSN),通過(guò)配置),通
48、過(guò)配置ODBC環(huán)境,進(jìn)行數(shù)據(jù)源的注冊(cè),環(huán)境,進(jìn)行數(shù)據(jù)源的注冊(cè),然后才能對(duì)數(shù)據(jù)源進(jìn)行連接、訪問(wèn)和操作。以連接數(shù)然后才能對(duì)數(shù)據(jù)源進(jìn)行連接、訪問(wèn)和操作。以連接數(shù)據(jù)源據(jù)源login為實(shí)例進(jìn)行操作:為實(shí)例進(jìn)行操作:VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n啟動(dòng)啟動(dòng)ODBCn在在Windows XP點(diǎn)擊點(diǎn)擊“開(kāi)始開(kāi)始”“控件面板控件面板”“性性能和維護(hù)能和維護(hù)”管理工具,出現(xiàn)如下界面:管理工具,出現(xiàn)如下界面:圖 14-15 ODBC界面VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1編程
49、訪問(wèn)方式編程訪問(wèn)方式n添加添加“用戶用戶DSN”n雙擊雙擊“數(shù)據(jù)源(數(shù)據(jù)源(ODBC)”,出現(xiàn)如下界面,選擇,出現(xiàn)如下界面,選擇“用戶用戶DSN”,點(diǎn)擊,點(diǎn)擊“添加添加”,如圖,如圖14-16所示:所示:圖 14-16 添加用DSNVBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n選擇數(shù)據(jù)源的驅(qū)動(dòng)程序選擇數(shù)據(jù)源的驅(qū)動(dòng)程序n數(shù)據(jù)源驅(qū)動(dòng)程序選擇數(shù)據(jù)源驅(qū)動(dòng)程序選擇“SQL Server”,如圖如圖14-17所示:所示:圖 14-17 選擇數(shù)據(jù)源的驅(qū)動(dòng)程序VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社
50、14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n數(shù)據(jù)源命名數(shù)據(jù)源命名n給數(shù)據(jù)源命名為給數(shù)據(jù)源命名為L(zhǎng)ogin,如圖,如圖14-18所示:所示:服務(wù)器名稱:機(jī)器名實(shí)例名圖 14-18 給數(shù)據(jù)源命名VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n注:服務(wù)器名根據(jù)實(shí)際情況填寫:機(jī)器名注:服務(wù)器名根據(jù)實(shí)際情況填寫:機(jī)器名實(shí)例名實(shí)例名n測(cè)試數(shù)據(jù)源測(cè)試數(shù)據(jù)源:圖 14-19 數(shù)據(jù)源測(cè)試VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.1編程訪問(wèn)方式編程訪問(wèn)方式n(2)無(wú)源數(shù)據(jù)庫(kù)連接)無(wú)源數(shù)據(jù)庫(kù)連接n與有源數(shù)
51、據(jù)庫(kù)連接的區(qū)別在于不需要配置與有源數(shù)據(jù)庫(kù)連接的區(qū)別在于不需要配置ODBC,不使用,不使用DSN。n提供連接所需要的特定信息包括提供連接所需要的特定信息包括n服務(wù)器名稱:服務(wù)器名稱:“機(jī)器名機(jī)器名實(shí)例名實(shí)例名”n用戶名:用戶名:“sa”n口令可為空口令可為空n與數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)“l(fā)ogin”建立的連接代碼如下:建立的連接代碼如下:nconn.ConnectionString=driver=sql server;_nserver=機(jī)器名機(jī)器名實(shí)例名;實(shí)例名;Uer Id=sa;pwd=;Database=loginn打開(kāi)連接對(duì)象打開(kāi)連接對(duì)象n設(shè)置好連接屬性后,就可以打開(kāi)連接對(duì)象了。代碼如下:設(shè)置好連
52、接屬性后,就可以打開(kāi)連接對(duì)象了。代碼如下:n conn.Openn這樣,這樣,VB和后臺(tái)和后臺(tái)SQL Server數(shù)據(jù)庫(kù)的連接就創(chuàng)建好了。數(shù)據(jù)庫(kù)的連接就創(chuàng)建好了。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.3實(shí)例操作實(shí)例操作n1有源數(shù)據(jù)庫(kù)連接有源數(shù)據(jù)庫(kù)連接n(1)創(chuàng)建)創(chuàng)建“標(biāo)準(zhǔn)標(biāo)準(zhǔn)EXE”工程,工程命名為工程,工程命名為loginn(2)引用)引用“Microsoft ActiveX Data Object 2.0 Library”n(3)創(chuàng)建模塊文件)創(chuàng)建模塊文件n選擇選擇“工程工程”“添加模塊添加模塊”,在模塊中輸入代碼:,在模塊中輸入代碼:
53、nPublic conn As New ADODB.Connection 標(biāo)記新連接對(duì)象標(biāo)記新連接對(duì)象nPublic rs As ADODB.Recordset 標(biāo)記新記錄集對(duì)象標(biāo)記新記錄集對(duì)象VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.3實(shí)例操作實(shí)例操作n(4)創(chuàng)建登錄窗體界)創(chuàng)建登錄窗體界面面n選擇選擇“工程工程”“添加添加窗體窗體”,在,在VB窗體中添窗體中添加兩個(gè)標(biāo)簽控件、兩個(gè)加兩個(gè)標(biāo)簽控件、兩個(gè)文件框控件和一個(gè)命令文件框控件和一個(gè)命令按鈕控件按鈕控件,窗體界面如圖窗體界面如圖14-20:圖 14-20 登錄窗體界面VBVB程序設(shè)計(jì)項(xiàng)目化教
54、程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.3實(shí)例操作實(shí)例操作n有源數(shù)據(jù)庫(kù)連接主要代碼有源數(shù)據(jù)庫(kù)連接主要代碼nDim conn As New ADODB.Connection 定義連接對(duì)象定義連接對(duì)象nDim rs As ADODB.Recordset 定義記錄集對(duì)象定義記錄集對(duì)象n窗體加載代碼窗體加載代碼:nPrivate Sub Form_Load()nSet conn=New ADODB.Connection 設(shè)置設(shè)置conn實(shí)例對(duì)象實(shí)例對(duì)象nSet rs=New ADODB.Recordset 設(shè)置設(shè)置rs實(shí)例對(duì)象實(shí)例對(duì)象nconn.ConnectionStrin
55、g=DSN=login;User_ ID=sa;Password=;database=login;nconn.ConnectionTimeout=30nconn.OpennEnd SubVBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.3實(shí)例操作實(shí)例操作n其中有源數(shù)據(jù)庫(kù)連接:其中有源數(shù)據(jù)庫(kù)連接:nDSN數(shù)據(jù)源是數(shù)據(jù)源是“Login”n用戶名是用戶名是“sa”n口令為空口令為空n與數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)“l(fā)ogin”建立的連接代碼:建立的連接代碼:nconn.ConnectionString=DSN=Login;User ID=sa;PWD=;database=l
56、ogin;n命令按鈕代碼:命令按鈕代碼:nPrivate Sub Command1_Click()nrs.Open select*from 用戶信息用戶信息 where 用戶名用戶名=&Text1.Text&_nand 密碼密碼=&Text2.Text&,conn,adOpenstate,adLockOptimistic,_ adCmdTextVBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.3實(shí)例操作實(shí)例操作nIf rs.EOF=True ThennMsgBox 請(qǐng)重新輸入學(xué)號(hào)或密碼請(qǐng)重新輸入學(xué)號(hào)或密碼!nText1.Text=nText2.Text=
57、nText1.SetFocusnElsenMsgBox 登錄成功登錄成功nEnd Ifnrs.ClosenUnload MenEnd SubVBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.3實(shí)例操作實(shí)例操作n(6)程序運(yùn)行)程序運(yùn)行n程序運(yùn)行后,用戶名與密碼輸入正確后,登錄成功程序運(yùn)行后,用戶名與密碼輸入正確后,登錄成功,n如圖如圖14-21所示:所示:圖 14-21 登錄成功界面VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.3.3實(shí)例操作實(shí)例操作n2.無(wú)源數(shù)據(jù)庫(kù)連接無(wú)源數(shù)據(jù)庫(kù)連接n與有源數(shù)據(jù)庫(kù)連接不同的是無(wú)與有
58、源數(shù)據(jù)庫(kù)連接不同的是無(wú)DSN,無(wú)源數(shù)據(jù)庫(kù)連接代碼:無(wú)源數(shù)據(jù)庫(kù)連接代碼:nconn.ConnectionString=“Provider=SQLOLEDB.1;Persist Security_ Info=False;Server=機(jī)器名機(jī)器名實(shí)例名實(shí)例名;_ nUser ID=sa;Password=;DataBase=login“n(1)窗體加載主要代碼為:)窗體加載主要代碼為:nPrivate Sub Form_Load()nSet conn=New ADODB.Connection nSet rs=New ADODB.Recordsetnconn.ConnectionString=Pro
59、vider=SQLOLEDB.1;Persist Security_nInfo=False;Server=機(jī)器名機(jī)器名實(shí)例名實(shí)例名;User ID=sa;_nPassword=;DataBase=login;nconn.ConnectionTimeout=30nconn.OpennEnd Subn(2)其它代碼與有源數(shù)據(jù)庫(kù)連接相同)其它代碼與有源數(shù)據(jù)庫(kù)連接相同VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.4結(jié)束語(yǔ)結(jié)束語(yǔ)n14.4.1 ADO數(shù)據(jù)控件和數(shù)據(jù)控件和ADO對(duì)象模型比較對(duì)象模型比較n1連接數(shù)據(jù)庫(kù)比較連接數(shù)據(jù)庫(kù)比較nADO數(shù)據(jù)控件和數(shù)據(jù)控件和ADO
60、對(duì)象模型都為我們提供了數(shù)據(jù)庫(kù)對(duì)象模型都為我們提供了數(shù)據(jù)庫(kù)訪問(wèn)的接口技術(shù),使用訪問(wèn)的接口技術(shù),使用ADO控件在建立連接、選擇數(shù)控件在建立連接、選擇數(shù)據(jù)表時(shí),不需要?jiǎng)?chuàng)建連接對(duì)象和記錄集對(duì)象,據(jù)表時(shí),不需要?jiǎng)?chuàng)建連接對(duì)象和記錄集對(duì)象,ADO控控件幾乎封裝了相應(yīng)代碼的所有功能,只需設(shè)置好與之件幾乎封裝了相應(yīng)代碼的所有功能,只需設(shè)置好與之相關(guān)的屬性、方法和事件,操作簡(jiǎn)單。使用相關(guān)的屬性、方法和事件,操作簡(jiǎn)單。使用ADO對(duì)象對(duì)象模型,通過(guò)定義對(duì)象、編寫代碼來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn),模型,通過(guò)定義對(duì)象、編寫代碼來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問(wèn),能很好地控制各種操作,具備更多的靈活性和更強(qiáng)大能很好地控制各種操作,具備更多的靈活性和
61、更強(qiáng)大的功能。的功能。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.4結(jié)束語(yǔ)結(jié)束語(yǔ)n2.應(yīng)用領(lǐng)域比較應(yīng)用領(lǐng)域比較nADO控件雖然操作簡(jiǎn)單,但靈活性較差,不利于對(duì)大控件雖然操作簡(jiǎn)單,但靈活性較差,不利于對(duì)大型數(shù)據(jù)庫(kù)訪問(wèn),一個(gè)型數(shù)據(jù)庫(kù)訪問(wèn),一個(gè)ADO控件只能在同一數(shù)據(jù)源上打控件只能在同一數(shù)據(jù)源上打開(kāi)一個(gè)記錄集,在一個(gè)應(yīng)用中若涉及多個(gè)記錄集,則開(kāi)一個(gè)記錄集,在一個(gè)應(yīng)用中若涉及多個(gè)記錄集,則需要建立多個(gè)需要建立多個(gè)ADO控件。而使用控件。而使用ADO對(duì)象模型,便對(duì)象模型,便于實(shí)現(xiàn)對(duì)象重用、封裝等技術(shù),也利于事件處理,提于實(shí)現(xiàn)對(duì)象重用、封裝等技術(shù),也利于事件處理,
62、提高數(shù)據(jù)操作效率,特別是對(duì)海量數(shù)據(jù)的處理。在開(kāi)發(fā)高數(shù)據(jù)操作效率,特別是對(duì)海量數(shù)據(jù)的處理。在開(kāi)發(fā)應(yīng)用程序時(shí),應(yīng)根據(jù)數(shù)據(jù)庫(kù)應(yīng)用程序的特點(diǎn)來(lái)選擇具應(yīng)用程序時(shí),應(yīng)根據(jù)數(shù)據(jù)庫(kù)應(yīng)用程序的特點(diǎn)來(lái)選擇具體的訪問(wèn)方式。體的訪問(wèn)方式。VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.5思考題與練習(xí)題思考題與練習(xí)題n14.5.1 思考題思考題n1如何實(shí)現(xiàn)如何實(shí)現(xiàn)ADODC控件與控件與DataCombo控件結(jié)合控件結(jié)合n2如何實(shí)現(xiàn)如何實(shí)現(xiàn)ADODC控件與控件與TextBox控件結(jié)合控件結(jié)合n3編程訪問(wèn)數(shù)據(jù)庫(kù)中如何理解無(wú)源數(shù)據(jù)庫(kù)連接編程訪問(wèn)數(shù)據(jù)庫(kù)中如何理解無(wú)源數(shù)據(jù)庫(kù)連接VBVB程序設(shè)計(jì)項(xiàng)目化教程程序設(shè)計(jì)項(xiàng)目化教程中國(guó)水利水電出版社中國(guó)水利水電出版社14.5.2 練習(xí)題練習(xí)題n1設(shè)計(jì)學(xué)生信息窗體。使用設(shè)計(jì)學(xué)生信息窗體。使用TextBox綁定控件,窗體綁定控件,窗體上添加上添加4個(gè)標(biāo)簽控件,個(gè)標(biāo)簽控件,4個(gè)文本框控件,一個(gè)個(gè)文本框控件,一個(gè)ADODC控控件,如圖件,如圖14-22所示:所示:圖 14-22 ADODC控件與TextBox綁定控件結(jié)合顯示數(shù)據(jù)
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第七章-透射電子顯微鏡
- 群落的結(jié)構(gòu)(課件)
- 焊接基礎(chǔ)知識(shí)
- 水文地質(zhì)學(xué)課件
- 某公司員工工傷安全管理規(guī)定
- 消防培訓(xùn)課件:安全檢修(要點(diǎn))
- 某公司安全生產(chǎn)考核與獎(jiǎng)懲辦法范文
- 安全作業(yè)活動(dòng)安全排查表
- 某公司危險(xiǎn)源安全辨識(shí)、分類和風(fēng)險(xiǎn)評(píng)價(jià)、分級(jí)辦法
- 某公司消防安全常識(shí)培訓(xùn)資料
- 安全培訓(xùn)資料:危險(xiǎn)化學(xué)品的類別
- 中小學(xué)寒假學(xué)習(xí)計(jì)劃快樂(lè)度寒假充實(shí)促成長(zhǎng)
- 紅色插畫(huà)風(fēng)輸血相關(guān)知識(shí)培訓(xùn)臨床輸血流程常見(jiàn)輸血不良反應(yīng)
- 14.應(yīng)急救援隊(duì)伍訓(xùn)練記錄
- 某公司各部門及人員安全生產(chǎn)責(zé)任制