第9講 深入進行數(shù)據(jù)庫編程.ppt_第1頁
第9講 深入進行數(shù)據(jù)庫編程.ppt_第2頁
第9講 深入進行數(shù)據(jù)庫編程.ppt_第3頁
第9講 深入進行數(shù)據(jù)庫編程.ppt_第4頁
第9講 深入進行數(shù)據(jù)庫編程.ppt_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、ASP程序設計,網(wǎng)絡程序設計-ASP和網(wǎng)絡程序設計基礎配套課件,第9講 深入進行數(shù)據(jù)庫編程,講解提綱,9.1 ADO的內(nèi)部對象 9.2 Connection對象 9.3 Command對象 9.4 Recordset對象 9.5 存取SQL Server數(shù)據(jù)庫 9.6 對多個表進行組合查詢 9.7 開發(fā)實例-在線通訊錄 9.8 本章小結,9.1 ADO的內(nèi)部對象,Connection對象連接數(shù)據(jù)庫 Command對象執(zhí)行命令 Recordset對象記錄集對象 Error、Parameter、Field分別是它們的子對象,9.2 Connection對象,Connection對象又稱數(shù)據(jù)庫連接對

2、象,用來建立和數(shù)據(jù)庫的連接。 幾個學習重點: 建立數(shù)據(jù)庫連接的各種方法。 Connection對象的Execute方法。 事務處理功能,9.2.1建立Connection對象,建立Connection對象的方法一般如下: Set Connection 對象實例=Server.CreateObject(“ADODB.Connection”) Connection對象實例.Open 數(shù)據(jù)庫連接字符串 在上面的數(shù)據(jù)庫連接字符串中,會用到若干參數(shù),如 DSN ODBC數(shù)據(jù)源名稱 Driver 數(shù)據(jù)庫的驅(qū)動程序類型 Dbq 數(shù)據(jù)庫的物理路徑 Provider 數(shù)據(jù)提供者 ,連接數(shù)據(jù)庫的具體方法,(1)創(chuàng)

3、建沒有ODBC數(shù)據(jù)源的連接 Dim db Set db=Server.CreateObject(ADODB.Connection) Db.Open Dbq=C:InetpubwwwrootASPTempchapter9address.mdb;Driver= Microsoft Access Driver (*.mdb) 注意事項: Dbq是數(shù)據(jù)庫文件的物理路徑 Driver是數(shù)據(jù)庫的類型,注意Driver和(*.mdb)之間有且僅有一個空格,連接數(shù)據(jù)庫的具體方法,(1b)創(chuàng)建沒有ODBC數(shù)據(jù)源的連接 Dim db Set db=Server.CreateObject(ADODB.Connect

4、ion) Db.Open Dbq= Driver=Microsoft Access Driver (*.mdb) 注意事項: 本例只是利用Server.MapPath方法將相對路徑轉(zhuǎn)換為了物理路徑。 不過要注意相對路徑的寫法,這里因為數(shù)據(jù)庫文件和ASP文件在同一個文件夾,所以直接寫文件名稱了。,連接數(shù)據(jù)庫的具體方法,(2)創(chuàng)建有ODBC數(shù)據(jù)源的連接 Dim db Set db=Server.CreateObject(ADODB.Connection) Db.Open Dsn=addr 注意事項: 參數(shù)Dsn表示數(shù)據(jù)源,addr是為數(shù)據(jù)庫文件address.mdb建立的數(shù)據(jù)源名稱。 這里也可以省

5、略Dsn=,直接簡寫為Db.Open addr,連接數(shù)據(jù)庫的具體方法,(3)創(chuàng)建基于OLE DB的連接 Dim db Set db=Server.CreateObject(ADODB.Connection) Db.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:InetpubwwwrootASPTempchapter9address.mdb 注意事項: 參數(shù)Provider表示數(shù)據(jù)庫的驅(qū)動程序,這里為Access。 參數(shù)Data Source表示數(shù)據(jù)庫的物理路徑,當然這里也可以使用Server.MapPath方法將相對路徑轉(zhuǎn)換為物理路徑。

6、,9.2.2 Connection對象的屬性,Connection對象的重要屬性,ConnectionString用來指定數(shù)據(jù)庫連接字符串;Provider用來指定數(shù)據(jù)庫管理程序名稱。和9.2.1中Open方法用到的實際一樣。 Mode用來指定對數(shù)據(jù)庫的權限,默認為可讀可寫。,9.2.3 Connection對象的方法,Connection對象的重要方法,Open方法用來打開數(shù)據(jù)庫連接;Close方法用來關閉數(shù)據(jù)庫連接。 Execute方法用來執(zhí)行各種查詢命令,其實可以完成查詢、添加、刪除和修改全部操作。 BeginTrans、CommitTrans和RollbackTrans用來進行事務處理

7、,9.2.4 利用Connection對象存取數(shù)據(jù)庫,本節(jié)內(nèi)容已經(jīng)在第8章全部講過,本節(jié)只是一個復習。,9-1.asp,9.2.5 事務處理,為什么要進行事務處理? 銀行轉(zhuǎn)賬示例 同生共死,同進共退,事務處理示例,9-2.asp,9.2.6 Error對象和Errors集合,Error對象又稱為錯誤對象,是Connection對象的子對象。數(shù)據(jù)庫程序運行時,一個錯誤就是一個Error對象,所有的Error對象就組成了Errors集合,又稱錯誤集合。 Error對象和Errors集合的關系 汽車和車隊的關系 士兵和軍隊的關系,Errors集合的屬性和方法,屬性 Count 返回集合中錯誤的個數(shù)。

8、如: Connection對象.Errors.Count 方法 Item 用來返回一個錯誤對象,如: Set Error對象= Connection對象.Errors.Item(錯誤索引值) Clear 清除集合中的所有錯誤,如: Connection對象.Errors.Clear,Error對象屬性,Number 錯誤編號,如3251、3246等 Description 錯誤描述 Source 錯誤原因 HelpContext 錯誤的幫助提示文字 HelpFile 錯誤的幫助提示文件 NativeError 服務器端產(chǎn)生的原始錯誤,Error對象示例,9-3.asp,9.3 Command對

9、象,Command對象又稱命令對象,是對數(shù)據(jù)庫執(zhí)行命令的對象,它可以執(zhí)行對數(shù)據(jù)庫查詢、添加、刪除、修改等記錄操作。 Command對象是介于Connection對象和Recordset對象之間的一個對象,它主要通過傳遞SQL指令,對數(shù)據(jù)庫提出操作請求,把得到的結果返給Recordset對象。 Command對象依賴Connection對象,因為Command對象必須經(jīng)過一個已經(jīng)建立的Connection對象才能發(fā)出SQL指令。 實際開發(fā)時常常省略了Command對象,但是其實也隱含建立了該對象。,建立Command對象的方法(1),一般是建立Connection對象,然后再建立Command對

10、象。如: ,建立 Command對象(2),不建立Connection對象,直接建立Command對象。 這種建立方法其實也要隱含建立Connection對象,但是,因為沒有明確建立Connection對象,就不能使用Connection對象的Execute等方法了。,9.3.2 Command對象的屬性,Command對象的重要屬性,CommandType 指定查詢信息類型,1表示SQL語句;2表示數(shù)據(jù)表名;4表示查詢名或存儲過程名稱。 CommandText 指定數(shù)據(jù)庫查詢命令,可以是SQL語句、數(shù)據(jù)表名或查詢名稱。 ActiveConnection 指定Connection對象實例名稱。

11、,9.3.3 Command對象的方法,Execute 執(zhí)行數(shù)據(jù)庫查詢命令,非常類似于Connection對象的Execute方法。 CreateParameter用來創(chuàng)建一個Parameter子對象,9.3.4 利用Command對象存取數(shù)據(jù)庫,利用Command對象也可以查詢、添加、更新、刪除記錄,請注意和利用Connection對象比較:,9-4.asp,9.3.5 非參數(shù)查詢,首先在數(shù)據(jù)庫中建立查詢,如 Select * From users Where name=“李玫” 在ASP中建立Command對象的時候,指定查詢命令類型為查詢,并指定查詢命令字符串為查詢名稱。如: cmd.C

12、ommandType=4 CommandText= list,非參數(shù)查詢示例,9-5.asp,9.3.6 參數(shù)查詢,在建立查詢時,可以使用參數(shù),如下面input_name就是一個參數(shù): Select * From users Where name=input_name 執(zhí)行時和非參數(shù)查詢類似,但是要注意需要傳入?yún)?shù)。,參數(shù)查詢示例,9-6.asp,9.3.7 Parameter對象和Parameter集合,一個Parameter對象就是一個參數(shù),若干個參數(shù)對象組成一個Parameters集合。 對象和集合的關系同Error對象和Errors集合。,Parameters集合的屬性和方法,屬性 C

13、ount 返回參數(shù)集合中的參數(shù)對象個數(shù),如: cmd.Parameters.Count 方法 Append 添加一個參數(shù)對象 Delete 刪除一個參數(shù)對象 Item 返回一個參數(shù)對象 Refresh 刷新Parameters集合中的參數(shù)對象。,建立Parameter對象,語法如下: Set Parameter對象實例=Command對象.CreateParameter(name,type,direction,size, value) 說明 Name 參數(shù)名稱 Type 參數(shù)類型,200表示變長字符串 Direction 參數(shù)方向, 1表示傳入,2表示傳出 Size 參數(shù)大小,一般可以省略 V

14、alue 參數(shù)的值 具體示例參看前面講的9-6.asp。,Parameter對象的屬性和方法,屬性 Name、Type、Direction、Size、Value和Attributes和CreateParameter方法的幾個參數(shù)類似。 方法 AppendChunk 該方法用于添加數(shù)據(jù)到Parameter對象的末尾。,9.4 Recordset對象,Recordset對象又稱記錄集對象。當用Command對象或Connection對象執(zhí)行查詢命令后,就會得到一個記錄集對象,該記錄集包含滿足條件的所有記錄。 本節(jié)學習重點 建立Recordset對象的方法 利用Recordset對象實現(xiàn)添加、刪除或

15、更新記錄操作; 數(shù)據(jù)分頁顯示的技術。,9.4.1 建立Recordset對象,建立Recordset對象的語法: Set Recordset對象實例=Server.CreateObject(“ADODB.Recordset”) Recordset對象.Open Source,ActiveConnection,CursorType,LockType,Options 說明 Soruce Command對象名或SQL語句或數(shù)據(jù)表名 ActiveConnection Connection對象名或數(shù)據(jù)庫連接字符串 CursorType Recordset對象記錄集中的指針類型, LockType Rec

16、ordset對象的使用類型 Options Source類型,建立Recordset對象的具體方法(1),利用Connection對象的Execute方法建立 Dim db,rs Set db=Server.CreateObject(ADODB.Connection) db.Open Dsn=addr Set rs=db.Execute(Select * From users) 說明: 這種方法是最常用的方法。 它沒有明確建立Command對象,但是會建立一個隱含的Command對象。,建立Recordset對象的具體方法(2),利用Command對象的Execute方法建立 Dim db,c

17、md,rs Set db=Server.CreateObject(ADODB.Connection) db.Open Dsn=addr Set cmd= Server.CreateObject(ADODB.Command) cmd.ActiveConnection=db cmd.CommandText=Select * From users Set rs=cmd.Execute 說明: 該方法明確建立了Connection對象和Command對象 。,建立Recordset對象的具體方法(3),利用Connetion對象的Execute方法建立的另一種形式 Dim db,rs Set db=S

18、erver.CreateObject(ADODB.Connection) db.Open Dsn=addr Set rs=Server.CreateObject(ADODB.Recordset) rs.Open Select * From users,db 說明: 這是將方法一修改為明確建立Recordset對象。,建立Recordset對象的具體方法(4),利用Command對象的Execute方法建立的另一種形式 Dim db,cmd,rs Set db=Server.CreateObject(ADODB.Connection) db.Open Dsn=addr“ Set cmd= Ser

19、ver.CreateObject(ADODB.Command) cmd.ActiveConnection=db cmd.CommandText=Select * From users Set rs=Server.CreateObject(ADODB.Recordset) rs.Open cmd 說明: 這種方法明確建立三個對象,功能最強大,也最科學。,建立Recordset對象的具體方法(5),直接建立Recordset對象 Dim rs Set rs=Server.CreateObject(ADODB.Recordset) rs.Open Select * From users, Dsn=a

20、ddr 說明: 這種方法由于沒有明確建立Connection對象和Command對象,就無法使用他們的特殊功能。,建立Recordset對象的總結,一般只有在查詢記錄時才會需要建立Recordset對象。 而插入、刪除和修改記錄時則不需要返回記錄集,所以一般就利用Connection對象或Command對象的Execute方法就可以了。,關于記錄集,記錄集,好比內(nèi)存中的虛擬數(shù)據(jù)表,保存了滿足查找條件的所有記錄。,9.4.2 Recordset對象的屬性,Recordset對象的重要屬性,第1組、打開記錄集時的一些設置 Source、ActiveConnection、Cursortype、Loc

21、kType、CursorLocation、Filter。 這一組和建立Recordset對象時的參數(shù)類似。 第2組、打開記錄集后的一些操作 RecordCount、Bof、Eof 第3組、關于數(shù)據(jù)分頁的一些屬性 PageSize、PageCount、AbsolutePage,9.7.3 Recordset對象的方法,9.7.3 Recordset對象的方法,第1組、主要是關于Recordset對象本身。 Open、Close、Requery 第2組、用來移動記錄指針。 Movefirst、MovePrevious、MoveNext、MoveLast、Move 第3組、用來添加、刪除或修改記錄。

22、 AddNew、Delete、Update、CancelUpdate、GetRows,9.4.4 利用Recordset對象查詢記錄,其實在第8章已經(jīng)多次使用,只是以前并沒有明確建立Recordset對象而已。,9-7.asp,9.4.5分頁顯示數(shù)據(jù),分頁顯示示意圖 分頁顯示數(shù)據(jù)的思想,首先顯示第1頁數(shù)據(jù),并且在下方提供頁碼鏈接,當客戶選擇頁碼時,仍然傳遞到本文件,并顯示新的一頁,分頁顯示數(shù)據(jù)具體示例,首先來看建立Recordset對象的語句 說明: 必須明確建立Recordset對象,并使用鍵盤指針1或靜態(tài)指針3,9-8.asp,分頁顯示數(shù)據(jù)具體示例,如何判斷當前顯示第幾頁 說明: 因為用R

23、equest.QueryString方法返回的數(shù)據(jù)類型是字符串,這里必須使用CInt函數(shù)將返回的字符串轉(zhuǎn)換為數(shù)字。,9-8.asp,分頁顯示數(shù)據(jù)具體示例,分頁顯示數(shù)據(jù) 說明: 要特別注意如何判斷一頁的結尾,這里采用了兩個條件,分別用來判斷普通頁和最后一頁的結尾情況。,9-8.asp,分頁顯示數(shù)據(jù)具體示例,顯示數(shù)據(jù)頁碼 說明: 當單擊這些超鏈接時,就會再鏈接到本頁,并將要顯示的數(shù)據(jù)頁碼當作參數(shù)傳回來。,9-8.asp,9.4.6 利用Recordset對象更新數(shù)據(jù)庫,使用SQL語句更新數(shù)據(jù)庫雖然簡單,但是在寫SQL語句時可能經(jīng)常出錯,而利用Recordset對象來更新數(shù)據(jù)庫,則不需再寫復雜的SQ

24、L語句。 當然,用這種方法必須明確建立Recordset對象,并且要注意Open方法的參數(shù),要可以讀寫才行。,添加記錄,示例 說明: AddNew表示添加一條新記錄. 最后必須用Update方法,才可以徹底添加進去。,修改記錄,示例 說明: 直接給要修改的字段賦值,然后使用Update方法即可更新。,刪除記錄,示例 說明: 刪除記錄很簡單,首先執(zhí)行Delete方法,然后執(zhí)行Update即可。 但是刪除記錄只是對當前記錄而言,可以使用移動記錄指針的方法將指針移動到需要刪除的記錄,然后刪除即可。,使用Recordset對象更新數(shù)據(jù)庫小結,教材中9-10.asp是一個將各種方法綜合到一起的示例,大家

25、可以拆開練習。 另外9-9.asp是另外一種借用數(shù)組的方法,請自行研究。 一般情況下,本課程使用SQL語句來執(zhí)行更新數(shù)據(jù)庫的任務,但特殊情況下使用本方法可能更方便。,9.4.7 Fields集合和Field對象,一個記錄集就好比一個電子表格,該表格內(nèi)總是包含有許多列(字段),每一個字段就是一個Field對象,而所有Field對象組合起來就是一個Fields集合。,輸出字段值的幾種方法,Response.Write rs(name) Response.Write rs.Fields(name) Response.Write rs.Fields(name).Value Response.Write

26、 rs.Fields.Item(name).Value Response.Write rs(1) Response.Write rs.Fields(1) Response.Write rs.Fields(1).Value Response.Write rs.Fields.Item(1).Value,Fields 集合的屬性和方法,屬性 Count 返回記錄集中字段個數(shù) 方法 Item 返回一個字段對象,語法如下: Set Field對象=Recordset對象.Fields.Item(字段名或字段索引值) 也可以簡寫為 Set Field對象=Recordset對象 (字段名或字段索引值),Field對象的屬性,Field對象屬性示例,9-11.asp,9.5 存取SQL Server數(shù)據(jù)庫,存取SQL Server數(shù)據(jù)庫(以下簡稱SQL數(shù)據(jù)庫)其實和存取Access數(shù)據(jù)庫是一樣的,只是在連接數(shù)據(jù)庫時略有區(qū)別,其他部分基本不用修改。,9.5.1 連接SQL Server數(shù)據(jù)庫,(1)創(chuàng)建沒有ODBC數(shù)據(jù)源的連接 Dim db Set db=Server.CreateObject( ADODB.Connect

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論