版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
VisualBasic程序設(shè)計項目化教程主編管小清郭賀彬VisualBasic程序設(shè)計項目化教程主編管小1項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目功能描述:本項目主要是了解ADO的主要功能與特性,ADO對象模型簡介及ADO的編程模型。掌握ADODC控件的主要屬性、常用方法及常用事件。掌握數(shù)據(jù)綁定控件的主要屬性、常用方法及常用事件。掌握在VisualBasic中使用ADO對象,進行非編程式訪問數(shù)據(jù)庫和編程式訪問數(shù)據(jù)庫項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目功能描述:項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目主要知識點:1.關(guān)于ADO2.ADODC控件3.數(shù)據(jù)綁定控件4.在VisualBasic中使用ADO對象項目實施步驟:閱讀基礎(chǔ)知識實例操作完成思考與練習題項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目主要知識點:14.1基礎(chǔ)知識概述14.1.1關(guān)于ADO1.ADO主要功能與特性ADO(ActiveXDataObject,Active數(shù)據(jù)對象)是基于OLEDB技術(shù)而設(shè)計的。是Microsoft提供的一種面向?qū)ο螅c語言無關(guān)的基于應(yīng)用程序?qū)拥臄?shù)據(jù)訪問接口。它是DAO/RDO的后繼產(chǎn)物。它主要特性:易于使用、可以訪問多種數(shù)據(jù)源、訪問速度快且效率高、易于Web應(yīng)用、技術(shù)編程接口豐富、低內(nèi)存支出和占用磁盤空間較少。ADO訪問數(shù)據(jù)是通過OLEDB來實現(xiàn)的,OLEDB不僅能夠以SQLServer、Oracle、Access等數(shù)據(jù)庫文件為訪問對象,還可對Excel表格、文本文件、圖形文件、電子郵件等各種各樣的數(shù)據(jù)通過統(tǒng)一的接口進行存取。ADO與OLEDB的關(guān)系如圖14-1所示:14.1基礎(chǔ)知識概述14.1.1關(guān)于ADO14.1基礎(chǔ)知識概述圖14-1ADO與OLEDB的關(guān)系圖14-1ADO與OLEDB的關(guān)系14.1基礎(chǔ)知識概述圖14-1ADO與OLEDB14.1基礎(chǔ)知識概述2.ADO對象模型ADO集中了DAO和RDO的優(yōu)點,且不像DAO和RDO那樣依賴于對象層次。ADO對象模型定義了一個可編程的分層對象集合,ADO模型主要由七個對象成員Connection(連接)、Command(命令)、RecordSet(記錄集)、Error(錯誤)、Parameter(參數(shù))、Field(字段)和Property(屬性)以及四個集合對象Errors、Parameters、Fields、Properties所組成。每個Connection、Command、Recordset和Field對象都有Properties集合。它們之間的關(guān)系如圖14-2所示:網(wǎng)圖14-2ADO對象模型關(guān)系圖14-2ADO對象模型關(guān)系14.1基礎(chǔ)知識概述2.ADO對象模型圖14-2A14.1基礎(chǔ)知識概述(1)Connection對象用于管理與數(shù)據(jù)庫的連接,通過連接可從應(yīng)用程序訪問數(shù)據(jù)源,包括打開和關(guān)閉連接以及運行SQL命令等,它保存諸如指針類型、連接字符串、查詢超時、連接超時和缺省數(shù)據(jù)庫這樣的連接信息。它包含了關(guān)于目標數(shù)據(jù)庫數(shù)據(jù)提供程序的相關(guān)信息。(2)Command對象包含關(guān)于某個命令,例如查詢字符串、參數(shù)定義等的信息。(3)Recordset對象用來存儲數(shù)據(jù)操作返回的記錄集。Recordset對象只代表一個記錄集,這個記錄集可以是一個數(shù)據(jù)庫中的表,或者是Command對象的執(zhí)行結(jié)果返回的記錄集。在ADO對象模型中,是在行中檢查和修改數(shù)據(jù)的最主要的方法,所有對數(shù)據(jù)的操作幾乎都是在Recordset對象中完成的。Recordset對象用于指定行、移動行、添加、更改、刪除記錄。14.1基礎(chǔ)知識概述(1)Connection對象14.1基礎(chǔ)知識概述(4)Field對象Field對象對應(yīng)于數(shù)據(jù)庫表的字段或SQL查詢語句Select關(guān)鍵字之后跟隨著的域,寬限包含記錄集中數(shù)據(jù)的某單個列的信息。(5)Error對象包含數(shù)據(jù)提供程序出錯時的擴展信息。(6)Parameter對象Parameter對象用于管理基于參數(shù)化查詢或存儲過程的Command對象相關(guān)聯(lián)的某個參數(shù)或自變量的信息,這類Command對象有一個包含其所有Parameter對象的Parameters集合。(7)Property對象包含某個ADO對象的提供程序定義的特征。掌握其中的Command、Connection、Recordset對象就可以實現(xiàn)基本的數(shù)據(jù)庫操作。14.1基礎(chǔ)知識概述(4)Field對象14.1.2ADO的編程模型ADO編程模型描述了使用ADO對象進行編程所必須的幾個重要步驟:1.連接數(shù)據(jù)源利用Connection對象的Open方法可以創(chuàng)建一個數(shù)據(jù)源的連接。語法:Connection對象.OpenConnectionString,UserID,PassWord,OpenOptions其中:Connection對象為定義的Connection對象的實例;ConnectionString為可選項,包含了連接的數(shù)據(jù)庫的信息;
UserID可選項,包含建立連接的用戶名;
PassWord為可選項,包含建立連接的用戶密碼;14.1.2ADO的編程模型ADO編程模型描述了使用ADO14.1.2ADO的編程模型2.打開記錄集對象(1)方法一:語法:Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options
其中:Recordset為所定義的記錄集對象的實例。
Source可選項,指明了所打開的記錄源信息。ActiveConnection可選項,合法的已打開的Connection對象的變量名或者是包含ConnectionString參數(shù)的字符串。
CursorType可選項,確定打開記錄集對象使用的指針類型。
LockType可選項,確定打開記錄集對象使用的鎖定類型。14.1.2ADO的編程模型2.打開記錄集對象14.1.2ADO的編程模型(2)方法二:語法:SetRecordset=Connection.Execute_(CommandText,RecordsAffected,Options)
其中:CommandText一個字符串,返回要執(zhí)行的SQL命令、表名、存儲過程或指定文本。
RecordsAffected可選項,Long類型值,返回操作影響的記錄數(shù)。Options可選項,Long類型值,指明如何處理CommandText參數(shù)。打開Recordset對象之后,我們就可以使用它的addnew、delete、update、movenext、find等方法了。14.1.2ADO的編程模型(2)方法二:14.1.2ADO的編程模型3.添加記錄添加新記錄的AddNew方法語法:Recordset.AddNewFields,Values
其中:Recordset為記錄集對象實例
Fields為一個字段名,或者是一個字段數(shù)組。
Values為給要加信息的字段賦的值,如果Fileds為一個字段名,那么Values應(yīng)為一個單個的數(shù)值。假如Fileds為一個字段數(shù)組,那么Values必須也為一個個數(shù),類型與Fields相同的數(shù)組。使用AddNew方法為記錄集添加新的記錄后,應(yīng)使用UpDate將所添加的的數(shù)據(jù)存儲在數(shù)據(jù)庫中。14.1.2ADO的編程模型3.添加記錄14.1.2ADO的編程模型4.修改記錄集用SQL語句將要修改的字段的一個數(shù)據(jù)找出來重新賦值。5.刪除記錄的Delete方法語法:Recordset.DeleteAffectRecords其中:AffectRecords參數(shù)是確定Delete方法作用的方式的。它的取值如下:adAffectCurrent只刪除當前的記錄。
adAffectGroup刪除符合Filter屬性設(shè)置的那些記錄。為了一次能刪除一組數(shù)據(jù),應(yīng)設(shè)置Filter屬性。6.查詢記錄(1)方法一:使用連接對象的Execute方法執(zhí)行SQL命令,返回查詢記錄集。(2)方法二:使用Command對象的Execute方法執(zhí)行CommandText屬性中設(shè)置的SQL命令,返回查詢記錄集。14.1.2ADO的編程模型4.修改記錄集14.1.2ADO的編程模型7.斷開連接在應(yīng)用程序結(jié)束之前,應(yīng)該釋放分配給ADO對象的資源,操作系統(tǒng)回收這些資源并可以再分配給其他應(yīng)用程序.使用的方法為:Close方法。語法:ADO對象.Close14.1.2ADO的編程模型7.斷開連接
14.2ADODC控件14.2.1ADODC控件在VB中,使用ADO訪問數(shù)據(jù)庫主要有兩種方式,一種是使用ADO數(shù)據(jù)控件,通過對控件的綁定來訪問數(shù)據(jù)庫中的數(shù)據(jù),即非編程訪問方式;另一種是使用ADO對象模型,通過定義對象和編寫代碼來實現(xiàn)對數(shù)據(jù)的訪問,即編程訪問方式,以下我們先介紹使用ADODC控件對數(shù)據(jù)庫進行訪問。1.ADODC控件幾個重要的與數(shù)據(jù)庫有關(guān)的屬性,如表14-1所示:14.2ADODC控件14.2.1ADODC控件
14.2ADODC控件表14-1ADO控件屬性CommandType 指示命令類型。取值為:1adCmdTextSQL——語句2adCmdTable——表4adCmdStoredProc——存儲過程8adCmdUnknown——其他類型ConnectionString支持連接字符串的OLEDB提供程序(打開屬性頁--通用)。ConnectionTimeou 在中止前等待打開連接的時間量(單位秒)。CursorLocation決定時使用服務(wù)器端游標還是客戶端游標(使用哪個游標引擎)。取值為:2adUseServer3adUseClientCursorType 設(shè)置用于下一級Recordset的游標類型。取值為:1adOpenKeyset2adOpenDynamic3adOpenStaticPassword 密碼-支持密碼的OLEDB提供程序。(打開屬性頁--身份驗證)RecordSourceRecordset源(adCommandText=SQL或者其它命令'語法',adCommandTable=表名稱。)(打開屬性頁--記錄源)UserName 用戶名稱-支持用戶名稱的OLEDB提供程序14.2ADODC控件表14-1ADO控件屬性
14.2ADODC控件2.ADODC控件常用的方法(1)Refresh方法。該方法用于刷新與ADODC控件連接的記錄集數(shù)據(jù)。(2)UpDateRecord方法通過此方法可以將數(shù)據(jù)綁定控件上的當前內(nèi)容寫入到數(shù)據(jù)庫。(3)Close方法Close方法主要用于關(guān)閉打開的對象及相關(guān)對象。3.ADODC控件的事件ADODC控件的事件分為兩種類型即:Will事件和Complete事件。其中Will事件是在操作開始之前調(diào)用,這時可能檢查或修改操作參數(shù),并且可以決定是取消操作還是允許完成操作。而Complete事件是在操作完成之后調(diào)用。14.2ADODC控件2.ADODC控件常用的方法
14.2ADODC控件(1)WillMove事件WillMove事件在執(zhí)行更改Recordset中的當前記錄操作之前調(diào)用。而MoveComplete事件則是在執(zhí)行更改Recordset中的當前記錄操作之后被調(diào)用。執(zhí)行Recordset.Open、Recordset.MoveNext、Recordset.Move、Recordset.MoveLast、Recordset.MoveFirst、Recordset.MovePrevious、Recordset.Bookmark、Recordset.AddNew、Recordset.Delete、Recordset.Requery等方法時觸發(fā)。14.2ADODC控件(1)WillMove事件
14.2ADODC控件(2)WillChangField事件和FieldChangComplete事件
WillChangeField在Recordset對象中Field屬性值更改之前調(diào)用。而FieldChangeComplete在Recordset對象中Field屬性值更改之后調(diào)用。執(zhí)行Recordset.Update、Recordset.Delete、Recordset.CancelUpdate、Recordset.UpdateBatch、Recordset.CancelBatch等方法時觸發(fā)。(3)WillChangRecordSet事件
WillChangRecordSet發(fā)生在對Recordset對象進行操作之前,而RecordSetChangComplete發(fā)生對Recordset對象進行操作之后。14.2ADODC控件(2)WillChangFiel14.2.2數(shù)據(jù)綁定控件1.數(shù)據(jù)綁定簡述ADODC控件只能連接數(shù)據(jù)庫,產(chǎn)生記錄集。但不能顯示記錄集中的數(shù)據(jù),要顯示記錄集中的數(shù)據(jù)必須通過能與它綁定的控件來實現(xiàn)。數(shù)據(jù)庫記錄集數(shù)據(jù)綁定圖14-3數(shù)據(jù)綁定與數(shù)據(jù)庫和記錄集關(guān)系圖14-3數(shù)據(jù)綁定與數(shù)據(jù)庫和記錄集關(guān)系14.2.2數(shù)據(jù)綁定控件1.數(shù)據(jù)綁定簡述數(shù)據(jù)庫記錄集數(shù)據(jù)綁14.2.2數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件具有DataSource、DataField屬性的控件均可作為綁定控件(2)常用綁定控件ComBox,Label,TextBox等控件是較為常用的數(shù)據(jù)綁定控件。14.2.2數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件14.2.2數(shù)據(jù)綁定控件(3)專門與ADO控件綁定的ActiveX控件①DataList–數(shù)據(jù)列表控件我們在下一節(jié)將專門介紹ADO控件與DataList控件結(jié)合顯示數(shù)據(jù)。②DataGrid–數(shù)據(jù)網(wǎng)格控件我們在下一節(jié)將專門介紹ADO控件與DataGrid控件結(jié)合顯示數(shù)據(jù)。③DataCombo–數(shù)據(jù)組合控件(4)高級數(shù)據(jù)綁定控件MicrosoftHierarchicalFlexGfid–分層式網(wǎng)格控件MicrosoftChart–圖表控件以上控件中數(shù)據(jù)網(wǎng)格控件和圖表控件可以綁定到整個記錄集,而其他控件只能綁定到記錄集的某一個字段。14.2.2數(shù)據(jù)綁定控件(3)專門與ADO控件綁定的Act14.2.2數(shù)據(jù)綁定控件2.數(shù)據(jù)綁定方法(1)添加控件首先添加ADODC控件及綁定控件添加到窗體上。(2)設(shè)置ADODC控件屬性設(shè)置ADODC控件的ConnectionString,RecordSource,Password,UserName屬性,連接數(shù)據(jù)庫。(3)設(shè)置綁定控件的DataSource屬性將綁定控件的DataSource屬性設(shè)為ADODC控件的名稱。(4)設(shè)置綁定控件的DateField屬性將綁定控件的DateField屬性設(shè)為要顯示的字段名稱。完成上述步驟后,即可通過綁定控件將數(shù)據(jù)顯示。14.2.2數(shù)據(jù)綁定控件2.數(shù)據(jù)綁定方法14.3在VisualBasic中使用ADO對象14.3.1非編程訪問方式我們以SQLServer2000數(shù)據(jù)庫為例。使用ADODC控件,快速創(chuàng)建數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。其中數(shù)據(jù)綁定控件可以是任何具有DataSource屬性的控件;數(shù)據(jù)提供者可以是任何符合OLEDB規(guī)范的數(shù)據(jù)源。14.3在VisualBasic中使用ADO對象14.3.14.3.1非編程訪問方式ADODC控件和DataList控件應(yīng)用實例(1)建立login數(shù)據(jù)庫首先啟動SQLServer2000企業(yè)管理器,建立一個login的數(shù)據(jù)庫,在login數(shù)據(jù)庫中建立“用戶信息”數(shù)據(jù)表,如圖14-4所示:圖14-4SQLServer2000企業(yè)管理器建立數(shù)據(jù)庫和數(shù)據(jù)表14.3.1非編程訪問方式ADODC控件和DataList控14.3.1非編程訪問方式(2)添加ADODC控件ADODC控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:單擊“工程”→“部件”菜單選項,選中“MicrosoftADODataControl6.0(OLEDB)”后,按“確定”,此時ADO數(shù)據(jù)控件便出現(xiàn)在工具箱中,如圖14-5所示:圖14-5添加ADODC控件14.3.1非編程訪問方式(2)添加ADODC控件圖1414.3.1非編程訪問方式(3)設(shè)置ADODC連接屬性將ADODC控件添加到窗體上,其默認的名稱屬性為“Adodc1”。右擊ADODC控件,選“ADODC屬性”,彈出“屬性頁”對話框,如圖14-6所示:圖14-6設(shè)置ADODC控件ConnectionString屬性14.3.1非編程訪問方式(3)設(shè)置ADODC連接屬性圖點擊彈出屬性頁面,選擇“通用”,選中“使用連接字符串”(也可以選擇“ODBC數(shù)據(jù)源名稱”),再單擊“生成”按鈕,彈出“數(shù)據(jù)鏈接屬性”對話框。選擇“提供程序”選項卡,在列表中選擇“MicrosoftOLEDBProviderForSQLSERVER”選項,如圖14-7所示,再單擊“下一步”按鈕。圖14-7選擇OLEDB提供程序14.3.1非編程訪問方式點擊彈出屬性頁面,選擇“通用”,選中“使用連接字符14.3.1非編程訪問方式指定服務(wù)器的名稱和登錄信息并選擇本連接要使用的數(shù)據(jù)庫文件。單擊“測試連接”按鈕以確定連接是否正常。若得到測試成功的消息,單擊“確定”按鈕以繼續(xù),如圖14-8所示。服務(wù)器名稱:機器名\實例名圖14-8設(shè)置數(shù)據(jù)連接屬性14.3.1非編程訪問方式指定服務(wù)器的名稱和登錄信息并選擇本14.3.1非編程訪問方式(4)設(shè)置AD0DC數(shù)據(jù)源屬性在“屬性頁”對話框中選擇“記錄源”選項卡,在命令類型下拉列表中選擇“2-adCmdTable”選項,在表或存儲過程名稱下拉列表中選擇數(shù)據(jù)表“用戶信息”。(若選擇的命令類型為“1-adCmdText”,則可在命令文本框中輸入SQL查詢語句,SELECT*from用戶信息),然后單擊“確定”按鈕,如圖14-9所示:圖14-9設(shè)置記錄源14.3.1非編程訪問方式(4)設(shè)置AD0DC數(shù)據(jù)源屬性圖14.3.1非編程訪問方式(5)在窗體上添加數(shù)據(jù)綁定控件我們使用DataList數(shù)據(jù)綁定控件。DataList控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:單擊“工程”→“部件”菜單選項,選中“MicrosoftDataListControl6.0(SP3)”后,按“確定”,此時DataList控件便出現(xiàn)在工具箱中。圖14-9將添加DataLIst控件添加到工具箱14.3.1非編程訪問方式(5)在窗體上添加數(shù)據(jù)綁定控件圖14.3.1非編程訪問方式(6)設(shè)置DataList屬性將DataList與ADODC1進行綁定,如圖14-10所示:圖14-10設(shè)置DataList屬性14.3.1非編程訪問方式(6)設(shè)置DataList屬性圖14.3.1非編程訪問方式(7)運行程序?qū)?shù)據(jù)表信息通過綁定控件DataList顯示,如圖14-11所示:圖14-11在DataList控件中顯示用戶名14.3.1非編程訪問方式(7)運行程序圖14-1114.3.1非編程訪問方式2.ADODC控件和DataGrid控件應(yīng)用實例(1)建立login數(shù)據(jù)庫首先啟動SQLServer2000企業(yè)管理器,建立一個login的數(shù)據(jù)庫,在login數(shù)據(jù)庫中建立“用戶信息”數(shù)據(jù)表。(2)添加ADODC控件并設(shè)置屬性方法同ADODC控件和DataList控件應(yīng)用實例,不再詳細介紹。(3)添加DataGrid控件在窗體上添加ADO專用綁定控件—DataGrid控件。DataGrid控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:單擊“工程”→“部件”菜單選項,選中“MicrosoftDataGridControl6.0(SP6)”后,按“確定”,此時DataList控件便出現(xiàn)在工具箱中,如圖14-12所示:圖14-12添加DataGrid控件14.3.1非編程訪問方式2.ADODC控件和DataGri14.3.1非編程訪問方式設(shè)置DataGrid屬性DataGrid控件DataSource屬性如圖14-13所示:圖14-13設(shè)置DataGrid的DataSource屬性14.3.1非編程訪問方式設(shè)置DataGrid屬性圖114.3.1非編程訪問方式②進行數(shù)據(jù)綁定數(shù)據(jù):右鍵單擊DataGrid控件,選擇“檢索字段”,進行數(shù)據(jù)綁定,也可以選擇“屬性DataField”進行綁定。(4)運行程序運行程序后,將數(shù)據(jù)表的信息通過數(shù)據(jù)綁定控件DataGrid顯示出來,如圖14-14所示:圖14-14在DataGrid控件中顯示數(shù)據(jù)表“用戶信息”14.3.1非編程訪問方式②進行數(shù)據(jù)綁定數(shù)據(jù):圖14-114.3.1非編程訪問方式通過ADODC控件與DataList控件及ADODC控件與DataGrid控件結(jié)合,可實現(xiàn)SQLServer數(shù)據(jù)庫login中“用戶信息”表中數(shù)據(jù)的瀏覽功能。ADODC控件還可以和TextBox控件、DataCombo控件結(jié)合,顯示數(shù)據(jù)表數(shù)據(jù)。14.3.1非編程訪問方式通過ADODC控件與DataLis14.3.1編程訪問方式編程訪問方式是使用ADO對象模型訪問數(shù)據(jù)庫。為了能夠在程序中使用ADO對象編程,在連接數(shù)據(jù)庫前,需要在VisualBasic6.0菜單“工程”→“引用”中選擇MicrosoftActiveXDataObjects2.8Library組件。運用ADO對象模型的主要元素:Connection(連接)中的ConnectionString屬性進行連接,ConnectionString為可讀寫string類型,指定一個連接字符串,告訴ADO如何連接數(shù)據(jù)庫。14.3.1編程訪問方式編程訪問方式是使用ADO對象模型訪14.3.1編程訪問方式1.定義ADO對象用于設(shè)置打開連接和產(chǎn)生記錄集(1)聲明語句如下:
DimconnAsNewADODB.Connection‘定義連接對象
DimrsAsNewADODB.Recordset‘定義記錄集對象(2)創(chuàng)建對象實例定義ADO對象實例,聲明了對象以后,還需要創(chuàng)建對象實例,否則不能使用。以下是兩條重要語句:Setconn=NewADODB.Connection‘創(chuàng)建conn對象Setrs=NewADODB.Recordset‘創(chuàng)建rs對象14.3.1編程訪問方式1.定義ADO對象用于設(shè)置打開連接和14.3.1編程訪問方式2.數(shù)據(jù)庫連接設(shè)置Connection對象實例ConnectionString屬性連接到數(shù)據(jù)庫。有兩種方法:有源數(shù)據(jù)庫連接和無源數(shù)據(jù)庫連接(1)有源數(shù)據(jù)庫連接有源數(shù)據(jù)庫連接首要任務(wù)是要注冊數(shù)據(jù)源名稱(DSN),通過配置ODBC環(huán)境,進行數(shù)據(jù)源的注冊,然后才能對數(shù)據(jù)源進行連接、訪問和操作。以連接數(shù)據(jù)源login為實例進行操作:14.3.1編程訪問方式2.數(shù)據(jù)庫連接14.3.1編程訪問方式①啟動ODBC在WindowsXP點擊“開始”→“控件面板”→“性能和維護”→管理工具,出現(xiàn)如下界面:圖14-15ODBC界面14.3.1編程訪問方式①啟動ODBC圖14-15O14.3.1編程訪問方式②添加“用戶DSN”雙擊“數(shù)據(jù)源(ODBC)”,出現(xiàn)如下界面,選擇“用戶DSN”,點擊“添加”,如圖14-16所示:圖14-16添加用DSN14.3.1編程訪問方式②添加“用戶DSN”圖14-1614.3.1編程訪問方式③選擇數(shù)據(jù)源的驅(qū)動程序數(shù)據(jù)源驅(qū)動程序選擇“SQLServer”,如圖14-17所示:圖14-17選擇數(shù)據(jù)源的驅(qū)動程序14.3.1編程訪問方式③選擇數(shù)據(jù)源的驅(qū)動程序圖14-114.3.1編程訪問方式④數(shù)據(jù)源命名給數(shù)據(jù)源命名為Login,如圖14-18所示:服務(wù)器名稱:機器名\實例名圖14-18給數(shù)據(jù)源命名14.3.1編程訪問方式④數(shù)據(jù)源命名服務(wù)器名稱:機器名\實例14.3.1編程訪問方式注:服務(wù)器名根據(jù)實際情況填寫:機器名\實例名⑤測試數(shù)據(jù)源:圖14-19數(shù)據(jù)源測試14.3.1編程訪問方式注:服務(wù)器名根據(jù)實際情況填寫:機器名14.3.1編程訪問方式(2)無源數(shù)據(jù)庫連接與有源數(shù)據(jù)庫連接的區(qū)別在于不需要配置ODBC,不使用DSN。①提供連接所需要的特定信息包括服務(wù)器名稱:“機器名\實例名”用戶名:“sa”口令可為空與數(shù)據(jù)庫“l(fā)ogin”建立的連接代碼如下:conn.ConnectionString="driver={sqlserver};_server=機器名\實例名;UerId=sa;pwd=;Database=login"②打開連接對象設(shè)置好連接屬性后,就可以打開連接對象了。代碼如下:
conn.Open 這樣,VB和后臺SQLServer數(shù)據(jù)庫的連接就創(chuàng)建好了。14.3.1編程訪問方式(2)無源數(shù)據(jù)庫連接14.3.3實例操作1.有源數(shù)據(jù)庫連接(1)創(chuàng)建“標準EXE”工程,工程命名為login(2)引用“MicrosoftActiveXDataObject2.0Library”(3)創(chuàng)建模塊文件選擇“工程”→“添加模塊”,在模塊中輸入代碼:PublicconnAsNewADODB.Connection‘標記新連接對象PublicrsAsADODB.Recordset‘標記新記錄集對象14.3.3實例操作1.有源數(shù)據(jù)庫連接14.3.3實例操作(4)創(chuàng)建登錄窗體界面選擇“工程”→“添加窗體”,在VB窗體中添加兩個標簽控件、兩個文件框控件和一個命令按鈕控件,窗體界面如圖14-20:圖14-20登錄窗體界面14.3.3實例操作(4)創(chuàng)建登錄窗體界面圖14-2014.3.3實例操作有源數(shù)據(jù)庫連接主要代碼DimconnAsNewADODB.Connection‘定義連接對象DimrsAsADODB.Recordset‘定義記錄集對象①窗體加載代碼:PrivateSubForm_Load()Setconn=NewADODB.Connection‘設(shè)置conn實例對象Setrs=NewADODB.Recordset‘設(shè)置rs實例對象conn.ConnectionString="DSN=login;User_ID=sa;Password=;database=login;"conn.ConnectionTimeout=30conn.OpenEndSub14.3.3實例操作有源數(shù)據(jù)庫連接主要代碼14.3.3實例操作其中有源數(shù)據(jù)庫連接:DSN數(shù)據(jù)源是“Login”用戶名是“sa”口令為空與數(shù)據(jù)庫“l(fā)ogin”建立的連接代碼:conn.ConnectionString="DSN=Login;UserID=sa;PWD=;database=login;"②命令按鈕代碼:PrivateSubCommand1_Click()rs.Open"select*from用戶信息where用戶名='"&Text1.Text&"'_and密碼='"&Text2.Text&"'",conn,adOpenstate,adLockOptimistic,_adCmdText14.3.3實例操作其中有源數(shù)據(jù)庫連接:14.3.3實例操作Ifrs.EOF=TrueThenMsgBox"請重新輸入學號或密碼!"Text1.Text=""Text2.Text=""Text1.SetFocusElseMsgBox"登錄成功"EndIfrs.CloseUnloadMeEndSub14.3.3實例操作Ifrs.EOF=TrueThe14.3.3實例操作(6)程序運行程序運行后,用戶名與密碼輸入正確后,登錄成功,如圖14-21所示:圖14-21登錄成功界面14.3.3實例操作(6)程序運行圖14-21登錄成功14.3.3實例操作2.無源數(shù)據(jù)庫連接與有源數(shù)據(jù)庫連接不同的是無DSN,無源數(shù)據(jù)庫連接代碼:conn.ConnectionString=“Provider=SQLOLEDB.1;PersistSecurity_Info=False;Server=機器名\實例名;_UserID=sa;Password=;DataBase=login“(1)窗體加載主要代碼為:PrivateSubForm_Load()Setconn=NewADODB.ConnectionSetrs=NewADODB.Recordsetconn.ConnectionString="Provider=SQLOLEDB.1;PersistSecurity_Info=False;Server=機器名\實例名;UserID=sa;_Password=;DataBase=login;"conn.ConnectionTimeout=30conn.OpenEndSub(2)其它代碼與有源數(shù)據(jù)庫連接相同14.3.3實例操作2.無源數(shù)據(jù)庫連接14.4結(jié)束語14.4.1ADO數(shù)據(jù)控件和ADO對象模型比較1.連接數(shù)據(jù)庫比較ADO數(shù)據(jù)控件和ADO對象模型都為我們提供了數(shù)據(jù)庫訪問的接口技術(shù),使用ADO控件在建立連接、選擇數(shù)據(jù)表時,不需要創(chuàng)建連接對象和記錄集對象,ADO控件幾乎封裝了相應(yīng)代碼的所有功能,只需設(shè)置好與之相關(guān)的屬性、方法和事件,操作簡單。使用ADO對象模型,通過定義對象、編寫代碼來實現(xiàn)數(shù)據(jù)庫的訪問,能很好地控制各種操作,具備更多的靈活性和更強大的功能。14.4結(jié)束語14.4.1ADO數(shù)據(jù)控件和ADO對象模型14.4結(jié)束語2.應(yīng)用領(lǐng)域比較ADO控件雖然操作簡單,但靈活性較差,不利于對大型數(shù)據(jù)庫訪問,一個ADO控件只能在同一數(shù)據(jù)源上打開一個記錄集,在一個應(yīng)用中若涉及多個記錄集,則需要建立多個ADO控件。而使用ADO對象模型,便于實現(xiàn)對象重用、封裝等技術(shù),也利于事件處理,提高數(shù)據(jù)操作效率,特別是對海量數(shù)據(jù)的處理。在開發(fā)應(yīng)用程序時,應(yīng)根據(jù)數(shù)據(jù)庫應(yīng)用程序的特點來選擇具體的訪問方式。14.4結(jié)束語2.應(yīng)用領(lǐng)域比較14.5思考題與練習題14.5.1思考題1.如何實現(xiàn)ADODC控件與DataCombo控件結(jié)合2.如何實現(xiàn)ADODC控件與TextBox控件結(jié)合3.編程訪問數(shù)據(jù)庫中如何理解無源數(shù)據(jù)庫連接14.5思考題與練習題14.5.1思考題14.5.2練習題1.設(shè)計學生信息窗體。使用TextBox綁定控件,窗體上添加4個標簽控件,4個文本框控件,一個ADODC控件,如圖14-22所示:圖14-22ADODC控件與TextBox綁定控件結(jié)合顯示數(shù)據(jù)14.5.2練習題1.設(shè)計學生信息窗體。使用TextBoVisualBasic程序設(shè)計項目化教程主編管小清郭賀彬VisualBasic程序設(shè)計項目化教程主編管小58項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目功能描述:本項目主要是了解ADO的主要功能與特性,ADO對象模型簡介及ADO的編程模型。掌握ADODC控件的主要屬性、常用方法及常用事件。掌握數(shù)據(jù)綁定控件的主要屬性、常用方法及常用事件。掌握在VisualBasic中使用ADO對象,進行非編程式訪問數(shù)據(jù)庫和編程式訪問數(shù)據(jù)庫項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目功能描述:項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目主要知識點:1.關(guān)于ADO2.ADODC控件3.數(shù)據(jù)綁定控件4.在VisualBasic中使用ADO對象項目實施步驟:閱讀基礎(chǔ)知識實例操作完成思考與練習題項目十四:ADO數(shù)據(jù)庫訪問技術(shù)的應(yīng)用項目主要知識點:14.1基礎(chǔ)知識概述14.1.1關(guān)于ADO1.ADO主要功能與特性ADO(ActiveXDataObject,Active數(shù)據(jù)對象)是基于OLEDB技術(shù)而設(shè)計的。是Microsoft提供的一種面向?qū)ο?,與語言無關(guān)的基于應(yīng)用程序?qū)拥臄?shù)據(jù)訪問接口。它是DAO/RDO的后繼產(chǎn)物。它主要特性:易于使用、可以訪問多種數(shù)據(jù)源、訪問速度快且效率高、易于Web應(yīng)用、技術(shù)編程接口豐富、低內(nèi)存支出和占用磁盤空間較少。ADO訪問數(shù)據(jù)是通過OLEDB來實現(xiàn)的,OLEDB不僅能夠以SQLServer、Oracle、Access等數(shù)據(jù)庫文件為訪問對象,還可對Excel表格、文本文件、圖形文件、電子郵件等各種各樣的數(shù)據(jù)通過統(tǒng)一的接口進行存取。ADO與OLEDB的關(guān)系如圖14-1所示:14.1基礎(chǔ)知識概述14.1.1關(guān)于ADO14.1基礎(chǔ)知識概述圖14-1ADO與OLEDB的關(guān)系圖14-1ADO與OLEDB的關(guān)系14.1基礎(chǔ)知識概述圖14-1ADO與OLEDB14.1基礎(chǔ)知識概述2.ADO對象模型ADO集中了DAO和RDO的優(yōu)點,且不像DAO和RDO那樣依賴于對象層次。ADO對象模型定義了一個可編程的分層對象集合,ADO模型主要由七個對象成員Connection(連接)、Command(命令)、RecordSet(記錄集)、Error(錯誤)、Parameter(參數(shù))、Field(字段)和Property(屬性)以及四個集合對象Errors、Parameters、Fields、Properties所組成。每個Connection、Command、Recordset和Field對象都有Properties集合。它們之間的關(guān)系如圖14-2所示:網(wǎng)圖14-2ADO對象模型關(guān)系圖14-2ADO對象模型關(guān)系14.1基礎(chǔ)知識概述2.ADO對象模型圖14-2A14.1基礎(chǔ)知識概述(1)Connection對象用于管理與數(shù)據(jù)庫的連接,通過連接可從應(yīng)用程序訪問數(shù)據(jù)源,包括打開和關(guān)閉連接以及運行SQL命令等,它保存諸如指針類型、連接字符串、查詢超時、連接超時和缺省數(shù)據(jù)庫這樣的連接信息。它包含了關(guān)于目標數(shù)據(jù)庫數(shù)據(jù)提供程序的相關(guān)信息。(2)Command對象包含關(guān)于某個命令,例如查詢字符串、參數(shù)定義等的信息。(3)Recordset對象用來存儲數(shù)據(jù)操作返回的記錄集。Recordset對象只代表一個記錄集,這個記錄集可以是一個數(shù)據(jù)庫中的表,或者是Command對象的執(zhí)行結(jié)果返回的記錄集。在ADO對象模型中,是在行中檢查和修改數(shù)據(jù)的最主要的方法,所有對數(shù)據(jù)的操作幾乎都是在Recordset對象中完成的。Recordset對象用于指定行、移動行、添加、更改、刪除記錄。14.1基礎(chǔ)知識概述(1)Connection對象14.1基礎(chǔ)知識概述(4)Field對象Field對象對應(yīng)于數(shù)據(jù)庫表的字段或SQL查詢語句Select關(guān)鍵字之后跟隨著的域,寬限包含記錄集中數(shù)據(jù)的某單個列的信息。(5)Error對象包含數(shù)據(jù)提供程序出錯時的擴展信息。(6)Parameter對象Parameter對象用于管理基于參數(shù)化查詢或存儲過程的Command對象相關(guān)聯(lián)的某個參數(shù)或自變量的信息,這類Command對象有一個包含其所有Parameter對象的Parameters集合。(7)Property對象包含某個ADO對象的提供程序定義的特征。掌握其中的Command、Connection、Recordset對象就可以實現(xiàn)基本的數(shù)據(jù)庫操作。14.1基礎(chǔ)知識概述(4)Field對象14.1.2ADO的編程模型ADO編程模型描述了使用ADO對象進行編程所必須的幾個重要步驟:1.連接數(shù)據(jù)源利用Connection對象的Open方法可以創(chuàng)建一個數(shù)據(jù)源的連接。語法:Connection對象.OpenConnectionString,UserID,PassWord,OpenOptions其中:Connection對象為定義的Connection對象的實例;ConnectionString為可選項,包含了連接的數(shù)據(jù)庫的信息;
UserID可選項,包含建立連接的用戶名;
PassWord為可選項,包含建立連接的用戶密碼;14.1.2ADO的編程模型ADO編程模型描述了使用ADO14.1.2ADO的編程模型2.打開記錄集對象(1)方法一:語法:Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options
其中:Recordset為所定義的記錄集對象的實例。
Source可選項,指明了所打開的記錄源信息。ActiveConnection可選項,合法的已打開的Connection對象的變量名或者是包含ConnectionString參數(shù)的字符串。
CursorType可選項,確定打開記錄集對象使用的指針類型。
LockType可選項,確定打開記錄集對象使用的鎖定類型。14.1.2ADO的編程模型2.打開記錄集對象14.1.2ADO的編程模型(2)方法二:語法:SetRecordset=Connection.Execute_(CommandText,RecordsAffected,Options)
其中:CommandText一個字符串,返回要執(zhí)行的SQL命令、表名、存儲過程或指定文本。
RecordsAffected可選項,Long類型值,返回操作影響的記錄數(shù)。Options可選項,Long類型值,指明如何處理CommandText參數(shù)。打開Recordset對象之后,我們就可以使用它的addnew、delete、update、movenext、find等方法了。14.1.2ADO的編程模型(2)方法二:14.1.2ADO的編程模型3.添加記錄添加新記錄的AddNew方法語法:Recordset.AddNewFields,Values
其中:Recordset為記錄集對象實例
Fields為一個字段名,或者是一個字段數(shù)組。
Values為給要加信息的字段賦的值,如果Fileds為一個字段名,那么Values應(yīng)為一個單個的數(shù)值。假如Fileds為一個字段數(shù)組,那么Values必須也為一個個數(shù),類型與Fields相同的數(shù)組。使用AddNew方法為記錄集添加新的記錄后,應(yīng)使用UpDate將所添加的的數(shù)據(jù)存儲在數(shù)據(jù)庫中。14.1.2ADO的編程模型3.添加記錄14.1.2ADO的編程模型4.修改記錄集用SQL語句將要修改的字段的一個數(shù)據(jù)找出來重新賦值。5.刪除記錄的Delete方法語法:Recordset.DeleteAffectRecords其中:AffectRecords參數(shù)是確定Delete方法作用的方式的。它的取值如下:adAffectCurrent只刪除當前的記錄。
adAffectGroup刪除符合Filter屬性設(shè)置的那些記錄。為了一次能刪除一組數(shù)據(jù),應(yīng)設(shè)置Filter屬性。6.查詢記錄(1)方法一:使用連接對象的Execute方法執(zhí)行SQL命令,返回查詢記錄集。(2)方法二:使用Command對象的Execute方法執(zhí)行CommandText屬性中設(shè)置的SQL命令,返回查詢記錄集。14.1.2ADO的編程模型4.修改記錄集14.1.2ADO的編程模型7.斷開連接在應(yīng)用程序結(jié)束之前,應(yīng)該釋放分配給ADO對象的資源,操作系統(tǒng)回收這些資源并可以再分配給其他應(yīng)用程序.使用的方法為:Close方法。語法:ADO對象.Close14.1.2ADO的編程模型7.斷開連接
14.2ADODC控件14.2.1ADODC控件在VB中,使用ADO訪問數(shù)據(jù)庫主要有兩種方式,一種是使用ADO數(shù)據(jù)控件,通過對控件的綁定來訪問數(shù)據(jù)庫中的數(shù)據(jù),即非編程訪問方式;另一種是使用ADO對象模型,通過定義對象和編寫代碼來實現(xiàn)對數(shù)據(jù)的訪問,即編程訪問方式,以下我們先介紹使用ADODC控件對數(shù)據(jù)庫進行訪問。1.ADODC控件幾個重要的與數(shù)據(jù)庫有關(guān)的屬性,如表14-1所示:14.2ADODC控件14.2.1ADODC控件
14.2ADODC控件表14-1ADO控件屬性CommandType 指示命令類型。取值為:1adCmdTextSQL——語句2adCmdTable——表4adCmdStoredProc——存儲過程8adCmdUnknown——其他類型ConnectionString支持連接字符串的OLEDB提供程序(打開屬性頁--通用)。ConnectionTimeou 在中止前等待打開連接的時間量(單位秒)。CursorLocation決定時使用服務(wù)器端游標還是客戶端游標(使用哪個游標引擎)。取值為:2adUseServer3adUseClientCursorType 設(shè)置用于下一級Recordset的游標類型。取值為:1adOpenKeyset2adOpenDynamic3adOpenStaticPassword 密碼-支持密碼的OLEDB提供程序。(打開屬性頁--身份驗證)RecordSourceRecordset源(adCommandText=SQL或者其它命令'語法',adCommandTable=表名稱。)(打開屬性頁--記錄源)UserName 用戶名稱-支持用戶名稱的OLEDB提供程序14.2ADODC控件表14-1ADO控件屬性
14.2ADODC控件2.ADODC控件常用的方法(1)Refresh方法。該方法用于刷新與ADODC控件連接的記錄集數(shù)據(jù)。(2)UpDateRecord方法通過此方法可以將數(shù)據(jù)綁定控件上的當前內(nèi)容寫入到數(shù)據(jù)庫。(3)Close方法Close方法主要用于關(guān)閉打開的對象及相關(guān)對象。3.ADODC控件的事件ADODC控件的事件分為兩種類型即:Will事件和Complete事件。其中Will事件是在操作開始之前調(diào)用,這時可能檢查或修改操作參數(shù),并且可以決定是取消操作還是允許完成操作。而Complete事件是在操作完成之后調(diào)用。14.2ADODC控件2.ADODC控件常用的方法
14.2ADODC控件(1)WillMove事件WillMove事件在執(zhí)行更改Recordset中的當前記錄操作之前調(diào)用。而MoveComplete事件則是在執(zhí)行更改Recordset中的當前記錄操作之后被調(diào)用。執(zhí)行Recordset.Open、Recordset.MoveNext、Recordset.Move、Recordset.MoveLast、Recordset.MoveFirst、Recordset.MovePrevious、Recordset.Bookmark、Recordset.AddNew、Recordset.Delete、Recordset.Requery等方法時觸發(fā)。14.2ADODC控件(1)WillMove事件
14.2ADODC控件(2)WillChangField事件和FieldChangComplete事件
WillChangeField在Recordset對象中Field屬性值更改之前調(diào)用。而FieldChangeComplete在Recordset對象中Field屬性值更改之后調(diào)用。執(zhí)行Recordset.Update、Recordset.Delete、Recordset.CancelUpdate、Recordset.UpdateBatch、Recordset.CancelBatch等方法時觸發(fā)。(3)WillChangRecordSet事件
WillChangRecordSet發(fā)生在對Recordset對象進行操作之前,而RecordSetChangComplete發(fā)生對Recordset對象進行操作之后。14.2ADODC控件(2)WillChangFiel14.2.2數(shù)據(jù)綁定控件1.數(shù)據(jù)綁定簡述ADODC控件只能連接數(shù)據(jù)庫,產(chǎn)生記錄集。但不能顯示記錄集中的數(shù)據(jù),要顯示記錄集中的數(shù)據(jù)必須通過能與它綁定的控件來實現(xiàn)。數(shù)據(jù)庫記錄集數(shù)據(jù)綁定圖14-3數(shù)據(jù)綁定與數(shù)據(jù)庫和記錄集關(guān)系圖14-3數(shù)據(jù)綁定與數(shù)據(jù)庫和記錄集關(guān)系14.2.2數(shù)據(jù)綁定控件1.數(shù)據(jù)綁定簡述數(shù)據(jù)庫記錄集數(shù)據(jù)綁14.2.2數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件具有DataSource、DataField屬性的控件均可作為綁定控件(2)常用綁定控件ComBox,Label,TextBox等控件是較為常用的數(shù)據(jù)綁定控件。14.2.2數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件14.2.2數(shù)據(jù)綁定控件(3)專門與ADO控件綁定的ActiveX控件①DataList–數(shù)據(jù)列表控件我們在下一節(jié)將專門介紹ADO控件與DataList控件結(jié)合顯示數(shù)據(jù)。②DataGrid–數(shù)據(jù)網(wǎng)格控件我們在下一節(jié)將專門介紹ADO控件與DataGrid控件結(jié)合顯示數(shù)據(jù)。③DataCombo–數(shù)據(jù)組合控件(4)高級數(shù)據(jù)綁定控件MicrosoftHierarchicalFlexGfid–分層式網(wǎng)格控件MicrosoftChart–圖表控件以上控件中數(shù)據(jù)網(wǎng)格控件和圖表控件可以綁定到整個記錄集,而其他控件只能綁定到記錄集的某一個字段。14.2.2數(shù)據(jù)綁定控件(3)專門與ADO控件綁定的Act14.2.2數(shù)據(jù)綁定控件2.數(shù)據(jù)綁定方法(1)添加控件首先添加ADODC控件及綁定控件添加到窗體上。(2)設(shè)置ADODC控件屬性設(shè)置ADODC控件的ConnectionString,RecordSource,Password,UserName屬性,連接數(shù)據(jù)庫。(3)設(shè)置綁定控件的DataSource屬性將綁定控件的DataSource屬性設(shè)為ADODC控件的名稱。(4)設(shè)置綁定控件的DateField屬性將綁定控件的DateField屬性設(shè)為要顯示的字段名稱。完成上述步驟后,即可通過綁定控件將數(shù)據(jù)顯示。14.2.2數(shù)據(jù)綁定控件2.數(shù)據(jù)綁定方法14.3在VisualBasic中使用ADO對象14.3.1非編程訪問方式我們以SQLServer2000數(shù)據(jù)庫為例。使用ADODC控件,快速創(chuàng)建數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。其中數(shù)據(jù)綁定控件可以是任何具有DataSource屬性的控件;數(shù)據(jù)提供者可以是任何符合OLEDB規(guī)范的數(shù)據(jù)源。14.3在VisualBasic中使用ADO對象14.3.14.3.1非編程訪問方式ADODC控件和DataList控件應(yīng)用實例(1)建立login數(shù)據(jù)庫首先啟動SQLServer2000企業(yè)管理器,建立一個login的數(shù)據(jù)庫,在login數(shù)據(jù)庫中建立“用戶信息”數(shù)據(jù)表,如圖14-4所示:圖14-4SQLServer2000企業(yè)管理器建立數(shù)據(jù)庫和數(shù)據(jù)表14.3.1非編程訪問方式ADODC控件和DataList控14.3.1非編程訪問方式(2)添加ADODC控件ADODC控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:單擊“工程”→“部件”菜單選項,選中“MicrosoftADODataControl6.0(OLEDB)”后,按“確定”,此時ADO數(shù)據(jù)控件便出現(xiàn)在工具箱中,如圖14-5所示:圖14-5添加ADODC控件14.3.1非編程訪問方式(2)添加ADODC控件圖1414.3.1非編程訪問方式(3)設(shè)置ADODC連接屬性將ADODC控件添加到窗體上,其默認的名稱屬性為“Adodc1”。右擊ADODC控件,選“ADODC屬性”,彈出“屬性頁”對話框,如圖14-6所示:圖14-6設(shè)置ADODC控件ConnectionString屬性14.3.1非編程訪問方式(3)設(shè)置ADODC連接屬性圖點擊彈出屬性頁面,選擇“通用”,選中“使用連接字符串”(也可以選擇“ODBC數(shù)據(jù)源名稱”),再單擊“生成”按鈕,彈出“數(shù)據(jù)鏈接屬性”對話框。選擇“提供程序”選項卡,在列表中選擇“MicrosoftOLEDBProviderForSQLSERVER”選項,如圖14-7所示,再單擊“下一步”按鈕。圖14-7選擇OLEDB提供程序14.3.1非編程訪問方式點擊彈出屬性頁面,選擇“通用”,選中“使用連接字符14.3.1非編程訪問方式指定服務(wù)器的名稱和登錄信息并選擇本連接要使用的數(shù)據(jù)庫文件。單擊“測試連接”按鈕以確定連接是否正常。若得到測試成功的消息,單擊“確定”按鈕以繼續(xù),如圖14-8所示。服務(wù)器名稱:機器名\實例名圖14-8設(shè)置數(shù)據(jù)連接屬性14.3.1非編程訪問方式指定服務(wù)器的名稱和登錄信息并選擇本14.3.1非編程訪問方式(4)設(shè)置AD0DC數(shù)據(jù)源屬性在“屬性頁”對話框中選擇“記錄源”選項卡,在命令類型下拉列表中選擇“2-adCmdTable”選項,在表或存儲過程名稱下拉列表中選擇數(shù)據(jù)表“用戶信息”。(若選擇的命令類型為“1-adCmdText”,則可在命令文本框中輸入SQL查詢語句,SELECT*from用戶信息),然后單擊“確定”按鈕,如圖14-9所示:圖14-9設(shè)置記錄源14.3.1非編程訪問方式(4)設(shè)置AD0DC數(shù)據(jù)源屬性圖14.3.1非編程訪問方式(5)在窗體上添加數(shù)據(jù)綁定控件我們使用DataList數(shù)據(jù)綁定控件。DataList控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:單擊“工程”→“部件”菜單選項,選中“MicrosoftDataListControl6.0(SP3)”后,按“確定”,此時DataList控件便出現(xiàn)在工具箱中。圖14-9將添加DataLIst控件添加到工具箱14.3.1非編程訪問方式(5)在窗體上添加數(shù)據(jù)綁定控件圖14.3.1非編程訪問方式(6)設(shè)置DataList屬性將DataList與ADODC1進行綁定,如圖14-10所示:圖14-10設(shè)置DataList屬性14.3.1非編程訪問方式(6)設(shè)置DataList屬性圖14.3.1非編程訪問方式(7)運行程序?qū)?shù)據(jù)表信息通過綁定控件DataList顯示,如圖14-11所示:圖14-11在DataList控件中顯示用戶名14.3.1非編程訪問方式(7)運行程序圖14-1114.3.1非編程訪問方式2.ADODC控件和DataGrid控件應(yīng)用實例(1)建立login數(shù)據(jù)庫首先啟動SQLServer2000企業(yè)管理器,建立一個login的數(shù)據(jù)庫,在login數(shù)據(jù)庫中建立“用戶信息”數(shù)據(jù)表。(2)添加ADODC控件并設(shè)置屬性方法同ADODC控件和DataList控件應(yīng)用實例,不再詳細介紹。(3)添加DataGrid控件在窗體上添加ADO專用綁定控件—DataGrid控件。DataGrid控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:單擊“工程”→“部件”菜單選項,選中“MicrosoftDataGridControl6.0(SP6)”后,按“確定”,此時DataList控件便出現(xiàn)在工具箱中,如圖14-12所示:圖14-12添加DataGrid控件14.3.1非編程訪問方式2.ADODC控件和DataGri14.3.1非編程訪問方式設(shè)置DataGrid屬性DataGrid控件DataSource屬性如圖14-13所示:圖14-13設(shè)置DataGrid的DataSource屬性14.3.1非編程訪問方式設(shè)置DataGrid屬性圖114.3.1非編程訪問方式②進行數(shù)據(jù)綁定數(shù)據(jù):右鍵單擊DataGrid控件,選擇“檢索字段”,進行數(shù)據(jù)綁定,也可以選擇“屬性DataField”進行綁定。(4)運行程序運行程序后,將數(shù)據(jù)表的信息通過數(shù)據(jù)綁定控件DataGrid顯示出來,如圖14-14所示:圖14-14在DataGrid控件中顯示數(shù)據(jù)表“用戶信息”14.3.1非編程訪問方式②進行數(shù)據(jù)綁定數(shù)據(jù):圖14-114.3.1非編程訪問方式通過ADODC控件與DataList控件及ADODC控件與DataGrid控件結(jié)合,可實現(xiàn)SQLServer數(shù)據(jù)庫login中“用戶信息”表中數(shù)據(jù)的瀏覽功能。ADODC控件還可以和TextBox控件、DataCombo控件結(jié)合,顯示數(shù)據(jù)表數(shù)據(jù)。14.3.1非編程訪問方式通過ADODC控件與DataLis14.3.1編程訪問方式編程訪問方式是使用ADO對象模型訪問數(shù)據(jù)庫。為了能夠在程序中使用ADO對象編程,在連接數(shù)據(jù)庫前,需要在VisualBasic6.0菜單“工程”→“引用”中選擇MicrosoftActiveXDataObjects2.8Library組件。運用ADO對象模型的主要元素:Connection(連接)中的ConnectionString屬性進行連接,ConnectionString為可讀寫string類型,指定一個連接字符串,告訴ADO如何連接數(shù)據(jù)庫。14.3.1編程訪問方式編程訪問方式是使用ADO對象模型訪14.3.1編程訪問方式1.定義ADO對象用于設(shè)置打開連接和產(chǎn)生記錄集(1)聲明語句如下:
DimconnAsNewADODB.Connection‘定義連接對象
DimrsAsNewADODB.Recordset‘定義記錄集對象(2)創(chuàng)建對象實例定義ADO對象實例,聲明了對象以后,還需要創(chuàng)建對象實例,否則不能使用。以下是兩條重要語句:Setconn=NewADODB.Connection‘創(chuàng)建conn對象Setrs=NewADODB.Recordset‘創(chuàng)建rs對象14.3.1編程訪問方式1.定義ADO對象用于設(shè)置打開連接和14.3.1編程訪問方式2.數(shù)據(jù)庫連接設(shè)置Connection對象實例ConnectionString屬性連接到數(shù)據(jù)庫。有兩種方法:有源數(shù)據(jù)庫連接和無源數(shù)據(jù)庫連接(1)有源數(shù)據(jù)庫連接有源數(shù)據(jù)庫連接首要任務(wù)是要注冊數(shù)據(jù)源名稱(DSN),通過配置ODBC環(huán)境,進行數(shù)據(jù)源的注冊,然后才能對數(shù)據(jù)源進行連接、訪問和操作。以連接數(shù)據(jù)源login為實例進行操作:14.3.1編程訪問方式2.數(shù)據(jù)庫連接14.3.1編程訪問方式①啟動ODBC在WindowsXP點擊“開始”→“控件面板”→“性能和維護”→管理工具,出現(xiàn)如下界面:圖14-15ODBC界面14.3.1編程訪問方式①啟動ODBC圖14-15O14.3.1編程訪問方式②添加“用戶DSN”雙擊“數(shù)據(jù)源(ODBC)”,出現(xiàn)如下界面,選擇“用戶DSN”,點擊“添加”,如圖14-16所示:圖14-16添加用DSN14.3.1編程訪問方式②添加“用戶DSN”圖14-1614.3.1編程訪問方式③選擇數(shù)據(jù)源的驅(qū)動程序數(shù)據(jù)源驅(qū)動程序選擇“SQLServer”,如圖14-17所示:圖14-17選擇數(shù)據(jù)源的驅(qū)動程序14.3.1編程訪問方式③選擇數(shù)據(jù)源的驅(qū)動程序圖14-114.3.1編程訪問方式④數(shù)據(jù)源命名給數(shù)據(jù)源命名為Login,如圖14-18所示:服務(wù)器名稱:機器名\實例名圖14-18給數(shù)據(jù)源命名14.3.1編程訪問方式④數(shù)據(jù)源命名服務(wù)器名稱:機器名\實例14.3.1編程訪問方式注:服務(wù)器名根據(jù)實際情況填寫:機器名\實例名⑤測試數(shù)據(jù)源:圖14-19數(shù)據(jù)源測試14.3.1編程訪問方式注:服務(wù)器名根據(jù)實際情況填寫:機器名14.3.1編程訪問方式(2)無源數(shù)據(jù)庫連接與有源數(shù)據(jù)庫連接的區(qū)別在于不需要配置ODBC,不使用DSN。①提供連接所需要的特定信息包括服務(wù)器名稱:“機器名\實例名”用戶名:“sa”口令可為空與數(shù)據(jù)庫“l(fā)ogin”建立的連接代碼如下:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公園綠地伸縮縫施工協(xié)議
- 婚禮場地租賃合同樣本
- 辦公樓建設(shè)鋼筋施工協(xié)議
- 基坑支護施工合同:倉儲物流篇
- 建筑施工合同質(zhì)量糾紛上訴狀
- 鄉(xiāng)村廣場景觀路燈施工協(xié)議
- 科技創(chuàng)新與研發(fā)管理培訓(xùn)
- 中秋節(jié)慰問信500字(10篇)
- 2024年房地產(chǎn)項目招投標合同
- 銷售內(nèi)勤年終個人工作總結(jié)(35篇)
- 2024新人教版道法一年級上冊第三單元:養(yǎng)成良好習慣大單元整體課時教學設(shè)計
- 醫(yī)療器械質(zhì)量安全風險會商管理制度
- 馬渭麗《月光下的中國》
- 護理職業(yè)生涯規(guī)劃書成長賽道
- 肺結(jié)節(jié)科普宣教培訓(xùn)
- 維克多高中英語3500詞匯
- 小學學生好人好事登記表
- 融資融券業(yè)務(wù)前景和業(yè)務(wù)開展方法(文字稿)
- 條據(jù)書信 車輛處理違章委托書.doc
- 《工程項目融資》PPT課件.ppt
- 《微積分》各章習題及詳細答案.doc
評論
0/150
提交評論