ASP網(wǎng)頁數(shù)據(jù)庫第章ppt課件_第1頁
ASP網(wǎng)頁數(shù)據(jù)庫第章ppt課件_第2頁
ASP網(wǎng)頁數(shù)據(jù)庫第章ppt課件_第3頁
ASP網(wǎng)頁數(shù)據(jù)庫第章ppt課件_第4頁
ASP網(wǎng)頁數(shù)據(jù)庫第章ppt課件_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、11.1 課前導讀11.2 課堂教學11.3 上機練習11.4 課后作業(yè)11.1 課前導讀 1. 網(wǎng)站數(shù)據(jù)庫化 2. 使用ADO訪問數(shù)據(jù)庫 3. ADO的特點 4. 示例數(shù)據(jù)庫 11.1 課前導讀 作為一種既易于使用又可擴展的技術(shù),ADO可以用于向網(wǎng)頁添加數(shù)據(jù)庫訪問。使用ADO編寫的應用程序可以存取在Internet上任何地方的資源,例如,你可以在家里通過瀏覽器填寫購物單,去購買遠在千里之外的物品。1. 網(wǎng)站數(shù)據(jù)庫化 將網(wǎng)站數(shù)據(jù)庫化,就是使用數(shù)據(jù)庫來管理整個網(wǎng)站。只要更新數(shù)據(jù)庫的內(nèi)容,網(wǎng)站的內(nèi)容就會被自動更新。將網(wǎng)站數(shù)據(jù)庫化的好處如下: 可以自動更新網(wǎng)頁。采用數(shù)據(jù)庫管理,只要更新數(shù)據(jù)庫的數(shù)據(jù),

2、網(wǎng)頁內(nèi)容就會自動得到更新,過期的網(wǎng)頁也可以被自動拿掉。 加強搜尋功能。將網(wǎng)站的內(nèi)容儲存在數(shù)據(jù)庫中,可以利用數(shù)據(jù)庫提供的強大搜尋功能,從多個方面搜尋網(wǎng)站的數(shù)據(jù)。 可以實現(xiàn)各種基于Web數(shù)據(jù)庫的應用。使用者只要使用瀏覽器,就可以通過Internet或Intranet內(nèi)部網(wǎng)絡,存取Web數(shù)據(jù)庫的數(shù)據(jù)??梢允褂迷趯W校教學、醫(yī)院、商業(yè)、銀行、股市、運輸旅游等各種應用上。例如銀行余額查詢、在線購書、在線查詢、在線預定機票、在線醫(yī)院預約掛號、在線電話費查詢、在線股市買賣交易、在線學校注冊選課,以及在線擇友等。2. 使用ADO訪問數(shù)據(jù)庫 目前,Microsoft對應用程序訪問各種各樣的數(shù)據(jù)源所使用的方法是OL

3、E DB,OLE DB是一套組件對象模型COM接口,但它是相當復雜的。連接應用程序與OLE DB的橋梁就是ADO。 可以使用ADO編寫簡潔和可擴展的腳本,連接到與OLE DB兼容的數(shù)據(jù)源,如數(shù)據(jù)庫、電子表格、順序數(shù)據(jù)文件或電子郵件目錄。使用ADO的對象模型,可以輕松地使用VBScript或JScript等腳本語言訪問這些接口,并將數(shù)據(jù)庫功能添加到您的Web應用程序中。另外,還可以使用ADO訪問與開放式數(shù)據(jù)庫互連ODBC兼容的數(shù)據(jù)庫。 ADO可以使用VBScript、JavaScript腳本語言來控制數(shù)據(jù)庫的存取以及輸出查詢結(jié)果。3. ADO的特點 ADO可以用來建造客戶/服務器結(jié)構(gòu)及Web的應

4、用,它具有以下的特點: 支持批處理(Batch Updating),可以分批處理客戶端提出的請求。 支持存儲過程(Stored Procedures),可使用in/out參數(shù)給存儲過程輸入及輸出值,并可以取得存儲過程的返回值。 可以使用存儲過程或批處理SQL指令,傳回多組記錄集的功能。4. 示例數(shù)據(jù)庫 雖然可以使用多種數(shù)據(jù)庫系統(tǒng)來從事ASP網(wǎng)頁數(shù)據(jù)庫的設計,但是由于Microsoft Access屬于Microsoft Office家族,取得較為容易,且界面與Office家族一致,使用容易,因此本教程采用Microsoft Access進行網(wǎng)頁數(shù)據(jù)庫的設計。 本課的示例數(shù)據(jù)庫文件rsgl.md

5、b中包含的“職工工資表的結(jié)構(gòu)見表11-1。 表11-1 “職工工資表的結(jié)構(gòu)11.2 課堂教學 11.2.1 ADO的概念 11.2.2 訪問數(shù)據(jù)庫11.2.1 ADO的概念 1. ADO對象模型 2. Connection對象 3. Command對象 4. Recordset對象1. ADO對象模型 ADO對象模型包括7個對象和3個集合,如圖11-1所示。其中對象及集合的說明見表11-1。表11-1 ADO對象描述表11-2 ADO集合描述 說明:在ADO對象模型中最為重要的對象是三個一般對象:Connection對象、Command對象和Recordset對象,通過這三個對象,可以方便地建

6、立數(shù)據(jù)庫連接,執(zhí)行SQL查詢及存取查詢的的結(jié)果。ConnectionRecordsetCommandErrorsFieldsFieldPrametersPrametersError圖11-1 ADO對象模型2. Connection對象 ASP使用ADO對各種數(shù)據(jù)源進行各種操作,其中,Connection對象是必不可少的,Connection對象可以用來在應用程序和數(shù)據(jù)庫中建立一條數(shù)據(jù)傳輸連線,在這個基礎之上可以使用Command對象及Recordse對象來對Connection對象所連接的數(shù)據(jù)庫進行插入刪除、更新和查詢等操作。同撥打電話一樣,建立一個Connection對象就像是拿起話筒,打

7、開一個Connection對象類似于撥號,而使用Command對象及Recordse對象已經(jīng)是在用這條線路通話了。 Connection對象的常用屬性見表11-3。表11-3 Connection對象的常用屬性 Connection對象的常用方法見表11-4。表11-4 Connection對象的方法及描述 下面對部分方法進行詳細說明。 Open方法:建立一個與數(shù)據(jù)源的連接對象,打開與數(shù)據(jù)源的連接。其語法格式為:Connobject.Open connectionstring, UserId, Password 其中:Connectstring為可選參數(shù),它是一個字符串變量,包含鏈接的信息。用

8、法參見Conectionstring屬性。 UserId為可選參數(shù),它是一個字符串變量,包含建立連接時訪問數(shù)據(jù)庫使用的用戶名稱。 Password為可選參數(shù),它是一個字符串變量,包含建立連接時訪問數(shù)據(jù)庫使用的密碼。 Close方法:關(guān)閉與數(shù)據(jù)源的連接,并且釋放與連接有關(guān)的系統(tǒng)資源。其語法格式為:Connobject.close 其中:Connobject為已經(jīng)創(chuàng)建的Connection對象。 使用Close方法關(guān)閉Connection對象,但沒有從內(nèi)存中刪除該對象。因此一個關(guān)閉的connection對象還 可 以 用 o p e n 方 法 打 開 而 不 必 再 次 創(chuàng) 建 一 個conne

9、ction對象。此外,在使用close方法關(guān)閉連接時,也將關(guān)閉以此連接相關(guān)的所有活動的recoordset對象。但是,與此連接相關(guān)的command對象將不受影響,只不過command對象不再參與這個連接。 為了釋放connection對象所占用的所有資源,可以用下面的方法:Set Connobject = nothing Execute方法:執(zhí)行SQL命令或存儲過程,以實現(xiàn)與數(shù)據(jù)庫的通訊。其語法為: 有返回記錄的格式:Set Rs = Connobject.Execute(CommandText, ReccordAffected, Options) 無返回記錄的格式:Connobject.Ex

10、ecute CommandText, ReccordAffected, Options 其中:Rs為創(chuàng)建的Recordsed對象;Connobject為已經(jīng)創(chuàng)建的Connection對象。 CommandType是一個字符串,它包含一個表名,或某個將被執(zhí)行的SQL語句;ReccordAffected為可選參數(shù),返回此次操作所影響的記錄數(shù)。Options為可選參數(shù),用來指定參數(shù)的CommandText參數(shù)的性質(zhì),即用來指定ADO如何解釋CommandText參數(shù)的參數(shù)值,其取值與意義見表11-5。表11-5 Options參數(shù)的取值及意義3. Command對象 Command對象用來定義數(shù)據(jù)庫

11、的查詢動作,這個查詢一般采用SQL語句,大部分數(shù)據(jù)庫都會支持SQL語言解釋。通過和SQL Server的查詢及存儲過程的良好結(jié)合,Command對象有更強大的數(shù)據(jù)庫訪問能力,無論是對數(shù)據(jù)庫的插入、更新和刪除這類無需返回結(jié)果集的操作,還是對Select查詢這樣需返回結(jié)果集的操作都一樣簡單。 Command對象的常用屬性見表11-6。表11-6 Command對象的屬性 說明:CommandType屬性指示CammandText屬性中設定的“命令字符串的類型,即用來指ADO如何解釋CammandText參數(shù)的參數(shù)值,它的取值與意義與表11-5中Options參數(shù)的取值及意義相同。 Command對

12、象的常用方法有Execute方法,用來運行CommandText屬性所設定的SQL查詢、SQL說明命令或存儲過程,以實現(xiàn)與數(shù)據(jù)庫的通訊。其語法為: 有返回記錄的格式:Set Rs = Comm. Execute(RecordsAffected, Parameters, Options) 無返回記錄的格式:Comm.Execute RecordsAfiected. Parameters, Options 其中:Rs為創(chuàng)建的Recordsed對象;Comm為已經(jīng)創(chuàng)建的Command對象。 RecordAfiected為可選參數(shù),返回此次操作所影響的記錄數(shù)。Parameters為可選參數(shù),表示一個S

13、QL語句的參數(shù)集合。Options為可選參數(shù),用來指定ADO如何解釋CommandText參數(shù)的參數(shù)值,它的取值與意義與表11-5中Options參數(shù)的取值及意義相同。4. Recordset對象 Recordset對象對應著Command對象的查詢返回結(jié)果,或者是直接建立的一個帶查詢的結(jié)果集。它把從數(shù)據(jù)庫內(nèi)查詢到的結(jié)果封裝在一起,并提供簡單快捷的方式去訪問每一條記錄內(nèi)每一字段的數(shù)據(jù),在后面的章節(jié)我們會詳細去了解這些方式。 R e c o r d s e t 對 象 實 際 上 是 依 附 于Connection對象和Command對象之上的。通過建立及開啟一個Connection對象,可以與

14、我們關(guān)心的數(shù)據(jù)庫建立連線;通過使用Command對象,則可以告訴數(shù)據(jù)庫我們想要做什么:是插入一條記錄,還是查找符合條件的記錄;通過使用Recordset對象,則可以方便自如地操作Command對象返回的結(jié)果。這三個對象中的每個都是必要的,缺一不可。 (1) Recordset對象的屬性 Recordset對象的常用屬性見表11-7。表11-7 Recordset對象的常用屬性 說明: CursorType屬性指定RecordSet對象所使用的光標類型。不同的光標類型決定了對RecordSet所能做的操作。共有四種光標類型:0 - 前滾光標(ForwardOnlyCursor),光標只能向前移動

15、,執(zhí)行效率高 , 是 C u r s o r 的 默 認 值 ; 1 - 鍵 盤 光 標(KeysetCursor),光標可向前向后移動,RecordSet記錄集同步反映自它創(chuàng)建后其他用戶所作的修改和刪除,但卻不能同步反映自它創(chuàng)建后其他用戶新增加的記錄;2 - 動態(tài)光標(DynamicCursor),光標可向前向后移動,任何時候RecordSet記錄集都同步反映其他用戶的任何操作;3 - 靜態(tài)光標(StaticCursor),光標可向前向后移動,自創(chuàng)建后無法同步反映其他用戶所做的任何操作,它的功能簡單但消耗資源少。 LockType屬性表示編輯時記錄的鎖定類型。它決定了當不止一個用戶試圖同時改

16、變一個記錄時,RecordSet如何處理數(shù)據(jù)記錄。它的取值有:0 - 只讀鎖定,記錄只讀,不能更新RecordSet,為LockType的默認值;1 - 悲觀鎖定,編輯記錄開始立刻鎖定,直到提交給數(shù)據(jù)提供者;2 - 樂觀鎖定,一次鎖定一條記錄,只有調(diào)用Update方法提交數(shù)據(jù)時才鎖定記錄;3 - 樂觀的批量更新,允許同時更新多條記錄。 Filter屬性用來設定一個過濾條件,以便對RecordSet記錄進行過濾。使用的優(yōu)點是可以在已經(jīng)存在的RecordSet對象上進一步過濾出所需的記錄。但這種方式增加了系統(tǒng)的開銷。它有兩種使用方式: 方式1:使用關(guān)系表達式,例如:Rs.Filter = bh 3

17、0 其中Rs是已經(jīng)創(chuàng)建的RecordSet對象;bh是RecordSet對象的字段數(shù)值型)。 方式2:使用準則常量:0 - 清除以前的Filter,允許看見所有記錄;1 - 只允許查看已修改但未提交的記錄;2 - 允許查看最后刪除、Resync、批量更新、或刪除批量方式所影響的記錄;3 - 允許查看數(shù)據(jù)庫最后讀取結(jié)果的數(shù)據(jù)。例如:Rs.Filter = 1 可以實現(xiàn)更新整個批量記錄之前只顯示用戶修改的記錄,使用戶在提交數(shù)據(jù)之前能夠進行檢查。 BookMark屬性用來存儲當前記錄的位置。并非每一個數(shù)據(jù)提供者都支持這個屬性。當創(chuàng)建一個允許使用BookMark屬性的RecordSet對象時,給每個記

18、錄都標上一個獨一無二的BookMark,利用BookMark可以返回訪問過的記錄。 Status屬性對于多用戶連接管理特別有用,通過該屬性可以看出更新記錄的失敗原因。它的返回值和意義如表11-8所示。表11-8 Status屬性的值和意義 (2) RecordSet對象的方法 RecordSet對象的方法及意義見表11-9。表11-9 RecordSet對象的方法及意義 說明: Open方法:打開一個RecordSet對象。其語法格式為:Rs.OpenSource, ActiveConnection, CursorType, LockType, Option 其中:Rs為已經(jīng)創(chuàng)建的Record

19、Set對象;Source為可選參數(shù),可以是一個Command對象名、SQL字符串存儲過程或數(shù)據(jù)庫的表名;ActiveConnection參見ActiveConnection屬性;CursorType是RecordSet對象所使用的光標類型,用法參見CursorType屬性;LockTypec是編輯RecordSet對象記錄時所使用的鎖定類型,用法參見LockType屬性;Options指示數(shù)據(jù)提供者如何處理Source的內(nèi)容類型,它的取值與意義見表11-5。 使用Close方法關(guān)閉RecordSet對象,并不從內(nèi)存中刪除該對象,只是無法讀取其中的數(shù)據(jù),但仍然可以讀取它的屬性。因此一個關(guān)閉的Re

20、ccordSet對象還可以用Open方法打開并保持其原有屬性。如果正在進行編輯更新數(shù)據(jù)的操作,在調(diào)用Close方法前必須先調(diào)用Update或CancelUpdate方法,否則將會出現(xiàn)錯誤。如果以批量模式更新數(shù)據(jù)記錄(Reccordset的LockType屬性設為3),那么對緩沖區(qū)數(shù)據(jù)的修改將全部丟失。另外,使用Clone方法復制一個已經(jīng)打開的RecordSet對象,調(diào)用Close方法不影響任何復制的RecordSet對象。 用下面的命令可以釋放RecordSet對象所占用的所有資源:set Rs = nothing Move方法用于把記錄指針指向指定的記錄。其語法格式為:Move n , st

21、art 其中n為要移動的記錄數(shù),取正時表示向前(下)挪動,取負時表示向后(上)挪動;start是可選參數(shù),表示移動的起點。 使用Move、MoveFirst、MoveLast、MovePrevious、MoveNext方法移動記錄指針時,需要注意RecordSet對象的光標類型。如“前滾光標限制了記錄指針只能向前移動。 GetRows方法從一個RecordSet對象讀取一行或多行記錄到一個數(shù)組中,一般用來讀取大量的數(shù)據(jù)。其語法格式為:Myarray = Rs.GetRows(rows, start, fields) 其中Myarray為目標數(shù)組名;Rs為已經(jīng)創(chuàng)建的RecordSet對象;Row

22、s為返回數(shù)組的行數(shù);start為讀取數(shù)據(jù)的起點(書簽);Fields為RecordSet的字段。 AddNew方法用于增加一條空紀錄。調(diào)用該方法時在RecordSet對象中增加一個新行,并將指針移到行首以準備保存新數(shù)據(jù)。該方法一般和Update方法相搭配共同完成數(shù)據(jù)更新的任務。不過這種方法很消耗資源、效率最低,最好用SQL語句來實現(xiàn)數(shù)據(jù)更新。 Delete方法用于刪除當前記錄。當RecordSet工作在批量方式時,可實現(xiàn)批量刪除。不過該方法非常消耗系統(tǒng)資源,效率非常低。其語法格式為:Delete value 其中value = 1默認值表示該方法只刪除當前記錄;value = 2表示該方法刪除

23、所有由Filter屬性設定的記錄。11.2.2 訪問數(shù)據(jù)庫 1. 連接到數(shù)據(jù)源 2. 使用Recordset對象處理結(jié)果1. 連接到數(shù)據(jù)源 (1) 創(chuàng)建連接字符串 創(chuàng)建Web數(shù)據(jù)應用程序的第一步是為ADO提供一種定位并標識數(shù)據(jù)源的方法。這一步通過“連接字符串實現(xiàn)。連接字符串是一系列用分號分隔的參數(shù),用于定義諸如數(shù)據(jù)源提供程序和數(shù)據(jù)源位置等參數(shù)。ADO使用連接字符串標識OLE DB提供程序并將提供程序指向數(shù)據(jù)源。提供程序是一個組件,用來描述數(shù)據(jù)源并以行集合的形式將信息展示給應用程序。 表11-10列出了幾種通用數(shù)據(jù)源的OLE DB連接字符串。表11-10 常用的通用數(shù)據(jù)源的OLE DB連接字符串

24、 為了向后兼容性,ODBC的OLE DB提供程序支持ODBC連接字符串語法。表11-11列出了常用的ODBC連接字符串。表11-11 常用的ODBC連接字符串 (2) 連接到數(shù)據(jù)源 ADO提供的Connection對象,用于建立和管理應用程序與OLE DB兼容數(shù)據(jù)源或ODBC兼容數(shù)據(jù)庫之間的連接。Connection對象的屬性和方法可以用來打開和關(guān)閉數(shù)據(jù)庫連接,并發(fā)布對更新信息的查詢。 要建立數(shù)據(jù)庫連接,首先必須創(chuàng)建Connection對象實例。下述代碼創(chuàng)建Connection對象實例,接著打開一個連接: 創(chuàng)建connection對象Set conn = Server.CreateObject

25、(ADODB.Connection) 使用OLE DB連接字符串打開連接conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:MarketDatarsgl.mdb或 創(chuàng)建connection對象 set conn=server.createobject(adodb.Connection) 創(chuàng)建OLE DB連接字符串 CS=Provider=Microsoft.jet.OLEDB.4.0;Data Source= c o n n . C o n n e c t i o n S t r i n g = C S & Server.MapP

26、ath(rsgl.mdb) 打開連接 conn.Open 說明: 連接字符串在等號(=)的左右不包含空格。 在上例中,Connection對象的Open方法將引用連接字符串。2. 使用Recordset對象處理結(jié)果 建立了連接對象Connection,并打開了數(shù)據(jù)庫連接后,就可以使用Recordset對象存取表中的記錄。 要使用Recordset對象處理結(jié)果,首先必須創(chuàng)建Recordset對象實例。下述代碼創(chuàng)建Recordset對象實例,并打開Recordset對象: 創(chuàng)建Recordset對象Set RS=Server.CreateObject(adodb.recordset) 打開Reco

27、rdset對象RS.Open 職工工資,conn,2,3,2 打開Recordset對象后,就可以讀取、插入、刪除和更新其中的記錄。下面通過一個綜合使用Recordset對象屬性和方法的例子來說明記錄集Recordset對象的應用。 【例11-1】綜合使用Recordset對象的屬性與方法,建立一個工資管理網(wǎng)頁應用程序,如圖11-1所示。 工資管理網(wǎng)頁應用程序包括6個asp文件,它們分別是: Main.asp:工資管理網(wǎng)頁主框架,包括兩個框架。上方框架為控制菜單,下方框架為數(shù)據(jù)顯示、操作區(qū)域。 Menu.asp:上方框架的來源網(wǎng)頁,用以控制各種數(shù)據(jù)操作。 List1.asp:記錄顯示頁面。 List2.asp:記錄修改頁面,用以修改指定記錄數(shù)據(jù)。 List3.asp:記錄增加頁面,用以增加新記錄。 List4.asp:記錄刪除頁面,用以刪除指定記錄。 (1) 主框架網(wǎng)頁 主框架網(wǎng)頁Main.asp的代碼如下: 說明:下方框架的名稱為“Bottom”,各個記錄操作網(wǎng)頁都將在此打開。 (2) 控制菜單網(wǎng)頁 控制菜單網(wǎng)頁Menu.asp是上方框架的來源網(wǎng)頁。其代碼。 說明

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論