Web數(shù)據(jù)庫的操作課件_第1頁
Web數(shù)據(jù)庫的操作課件_第2頁
Web數(shù)據(jù)庫的操作課件_第3頁
Web數(shù)據(jù)庫的操作課件_第4頁
Web數(shù)據(jù)庫的操作課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第12章 Web數(shù)據(jù)庫的操作12.1 數(shù)據(jù)庫訪問流程12.2 數(shù)據(jù)庫的連接12.3 數(shù)據(jù)的查詢控制12.4 數(shù)據(jù)的添加、刪除和修改第1頁,共51頁。本章學(xué)習(xí)目標(biāo)l ASP訪問數(shù)據(jù)庫的流程l 在ASP中連接數(shù)據(jù)庫的4種方法l數(shù)據(jù)庫的常用查詢方法l如何確定用戶的操作權(quán)限l進(jìn)行數(shù)據(jù)添加操作的方法l進(jìn)行數(shù)據(jù)刪除操作的方法l進(jìn)行數(shù)據(jù)修改操作的方法第2頁,共51頁。12.1 數(shù)據(jù)庫訪問流程進(jìn)行數(shù)據(jù)源操作的步驟如下:(1)創(chuàng)建與數(shù)據(jù)庫的連接,可以使用ADO中的Connection對(duì)象或RecordSet對(duì)象的相關(guān)屬性和方法。(2)設(shè)定要操作數(shù)據(jù)庫的命令,可以使用ADO中的Connection對(duì)象、Comma

2、nd對(duì)象或RecordSet對(duì)象的相關(guān)方法和屬性來完成。(3)執(zhí)行命令,可以使用ADO中的Connection對(duì)象、Command對(duì)象或RecordSet對(duì)象的相關(guān)方法。(4)得到數(shù)據(jù)后,就可以執(zhí)行對(duì)數(shù)據(jù)的瀏覽、增加、刪除、修改等操作,這一步通常使用RecordSet對(duì)象的有關(guān)方法和屬性完成。 (5)關(guān)閉數(shù)據(jù)庫,清除有關(guān)對(duì)象。返回首頁第3頁,共51頁。圖12-1 ADO存取數(shù)據(jù)源流程返回本節(jié)第4頁,共51頁。12.2 數(shù)據(jù)庫的連接(1)在Connection對(duì)象中設(shè)置ConnectionSTRing參數(shù)時(shí),可以通過設(shè)置系統(tǒng)數(shù)據(jù)源(System DSN),即通過設(shè)置ODBC的方法來連接數(shù)據(jù)庫。關(guān)

3、于DSN的設(shè)定請(qǐng)參閱前面的章節(jié)。在ASP中利用DSN連接數(shù)據(jù)庫的代碼如下:Set conn = Server.CreateObject(ADODB.Connection)conn.Open DSN=txl;UID=sa;PWD=;Database=txl(2)如果不采用DSN連接數(shù)據(jù)庫,在設(shè)置ConnectionSTRing參數(shù)時(shí),可以采用直接指定ODBC驅(qū)動(dòng)程序連接數(shù)據(jù)庫,連接SQL Server數(shù)據(jù)庫的代碼如下:Set conn = Server.CreateObject(ADODB.Connection)sTRProvider = Driver=SQL Server; Server=zj

4、f;Database=txl;UID=sa;PWD=;conn.Open sTRProvider返回首頁第5頁,共51頁。(3)通過OLE DB連接。代碼如下:Set conn = Server.CreateObject(ADODB.Connection)sTRPro=Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; conn.Open sTRPro(4)在其他對(duì)象中,也可以通過設(shè)置ActiveConnection參數(shù),完成對(duì)數(shù)據(jù)源連接的設(shè)置。以常用的RecordSet對(duì)象為例,可以使用該對(duì)

5、象的Open方法,利用設(shè)置好的ActiveConnection參數(shù)完成對(duì)數(shù)據(jù)庫的連接,程序代碼如下:Set rs=Server.CreateObject(ADODB.RecordSet)rs.Open t_student,Provider=sqloledb;Data Source=zjf;Initial Catalog&_=txl;User ID=sa; Password=; ,adOpenStatic,adLockreadOnly,adCmdTable返回本節(jié)第6頁,共51頁。12.3 數(shù)據(jù)的查詢控制數(shù)據(jù)庫在網(wǎng)絡(luò)中的應(yīng)用大部分集中在數(shù)據(jù)的查詢操作上。數(shù)據(jù)查詢需要使用ADO對(duì)象中的Connec

6、tion對(duì)象和RecordSet對(duì)象。進(jìn)行數(shù)據(jù)查詢時(shí),主要使用SQL語句中的Select語句,通過該語句就可以得到所要查詢的數(shù)據(jù)記錄。下面的例子將介紹如何利用Session對(duì)象和RecordSet對(duì)象的AbsolutePosition屬性以一頁或一條為單位來瀏覽查詢結(jié)果。返回首頁第7頁,共51頁。例12-1:第1步:建立ASP查詢,文件名為select.asp。在這個(gè)查詢中,使用了Session對(duì)象存儲(chǔ)RecordSet對(duì)象,數(shù)據(jù)庫的連接使用了RecordSet對(duì)象的Open方法。程序代碼如下: 學(xué)號(hào) 姓名 第9頁,共51頁。 性別 電話 籍貫 班級(jí) 民族%記錄開始時(shí),當(dāng)前數(shù)據(jù)指針在Recor

7、dSet對(duì)象的位置 Session(start)=Session(rs).AbsolutePosition輸出表中的數(shù)據(jù)For j=0 To Session(flag)-1 Response.Write 記錄結(jié)束時(shí),當(dāng)前數(shù)據(jù)指針在RecordSet對(duì)象的位置 Session(End)=Session(rs).Absoluteposition其中Session(rs).fields.count表示表的字段數(shù) For i=0 To Session(rs).fields.count-1第10頁,共51頁。把當(dāng)前的數(shù)據(jù)記錄顯示出來 Response.Write &Session(rs).fields(

8、i).value& Next Response.Write 移到下一條數(shù)據(jù)記錄,然后判斷是否到表尾,如果是,則把數(shù)據(jù)指針移到表頭 Session(rs).MoveNext If Session(rs).Eof Then Session(rs).MovePrevious Exit For End IfNextResponse.Write %第11頁,共51頁。第2步:建立具有翻頁功能的ASP程序,文件名為link.asp。該文件將顯示“上一頁”、“下一頁”、“開始記錄”、“結(jié)束記錄”和“數(shù)據(jù)總條數(shù)”等信息,并完成一定的鏈接關(guān)系,如“上一頁”及“下一頁”加入了超鏈接。注意:當(dāng)記錄指針位于第一頁時(shí),

9、“上一頁”沒有超鏈接,而當(dāng)記錄指針位于最后一頁時(shí),“下一頁”沒有超鏈接。第12頁,共51頁。程序代碼如下:%Response.Write 數(shù)據(jù)總條數(shù):&Session(rs).RecordCount& 判斷是否到表尾或記錄解釋否,如果是,則只給“上一頁”加上超鏈接If(Session(rs).Eof)or(Session(End)=Session(rs).RecordCount) Then Response.Write 上一頁| Response.Write 下一頁否則看是不是表頭,如果是則只給“下一頁”加上超鏈接ElseIf(Session(rs).Bof)or(Session(start)

10、=1) Then Response.Write 上一頁| Response.Write 下一頁第13頁,共51頁。其他情況,都加上超鏈接Else Response.Write 上一頁| Response.Write 下一頁 End IfResponse.Write 開始記錄:&Session(Start)&,結(jié)束記錄:&Session(End)&。%第14頁,共51頁。圖12-2 數(shù)據(jù)控制程序結(jié)果1:顯示首記錄第15頁,共51頁。圖12-3 數(shù)據(jù)控制程序結(jié)果2:顯示表中最后的數(shù)據(jù)記錄返回本節(jié)第16頁,共51頁。12.4 數(shù)據(jù)的添加、刪除和修改12.4.1 用戶操作權(quán)限12.4.2 數(shù)據(jù)的添加1

11、2.4.3 數(shù)據(jù)的刪除12.4.4 數(shù)據(jù)的修改返回首頁第17頁,共51頁。12.4.1 用戶操作權(quán)限1確認(rèn)用戶的權(quán)限可以先將用戶的名稱、密碼和權(quán)限代碼存放在一個(gè)數(shù)據(jù)表中,當(dāng)用戶登錄網(wǎng)站時(shí),確認(rèn)用戶名和密碼后,從數(shù)據(jù)庫中取得該用戶的權(quán)限代碼,然后利用Session變量標(biāo)識(shí)該用戶。假設(shè)用戶的相關(guān)信息都存放在表users中,程序代碼如下:第18頁,共51頁。第21頁,共51頁。2確認(rèn)用戶的操作在其他需要驗(yàn)證用戶的頁面通過該Session變量識(shí)別用戶,代碼如下:If Session(UserLevel) 1 Then Response.Redirect Error.asp End If第22頁,共51

12、頁。圖12-5 用戶沒有操作權(quán)限返回本節(jié)第23頁,共51頁。12.4.2 數(shù)據(jù)的添加在網(wǎng)站中,經(jīng)常有添加數(shù)據(jù)記錄的需求。如一個(gè)提供電子郵件服務(wù)的網(wǎng)站,常常有人申請(qǐng)加入,這時(shí)就要用到添加用戶資料的功能。添加數(shù)據(jù)記錄的方法很多,這里主要介紹兩種。一種是利用SQL語句中的Insert命令,另一種是利用ADO對(duì)象之一的RecordSet對(duì)象的AddNew方法。第24頁,共51頁。例12-3:第1步:首先創(chuàng)建一個(gè)添加數(shù)據(jù)的頁面(INPUT.htm),在該頁面中詳細(xì)列出用戶需輸入的項(xiàng)目。其代碼如下:學(xué) 生 基 本 數(shù) 據(jù) 錄 入 姓名: 學(xué)號(hào):第25頁,共51頁。 班級(jí): 性別: 男女 民族: 第26頁,

13、共51頁。籍貫: 聯(lián)系電話: 第27頁,共51頁。圖12-6 輸入頁面顯示第28頁,共51頁。第2步:建立表單處理程序(d_ins.asp),在該程序中利用SQL語句中的Insert命令添加數(shù)據(jù)記錄。這里將示范使用Connection對(duì)象的Execute方法運(yùn)行Insert命令。0 Then Response.Write 系統(tǒng)發(fā)生&conn.errors.Count&個(gè)錯(cuò)誤!Else Response.Write 數(shù)據(jù)添加成功!End IfSet conn=nothing%第31頁,共51頁。圖12-7 數(shù)據(jù)錄入正確和錯(cuò)誤的顯示第32頁,共51頁。第3步:在添加數(shù)據(jù)時(shí)還可以利用RecordSe

14、t對(duì)象的AddNew方法增加數(shù)據(jù)記錄。程序代碼如下:注意:不能以只讀方式打開表。返回本節(jié)第35頁,共51頁。12.4.3 數(shù)據(jù)的刪除例12-4:第1步:建立刪除頁面,在該頁面中可以選擇刪除的記錄。其顯示結(jié)果如下圖12-8所示。第36頁,共51頁。第2步:建立數(shù)據(jù)刪除程序,可以利用SQL的Delete命令刪除數(shù)據(jù)記錄。程序代碼如下:第37頁,共51頁。第3步:在刪除記錄時(shí),還可以利用RecordSet對(duì)象的Delete方法來刪除表中的數(shù)據(jù)記錄,如果要?jiǎng)h除的記錄可能不止一個(gè),應(yīng)該采用UpdateBatch方法。程序代碼如下:返回本節(jié)第39頁,共51頁。12.4.4 數(shù)據(jù)的修改例12-5:第1步:建

15、立數(shù)據(jù)修改頁面。在修改數(shù)據(jù)時(shí),應(yīng)該向用戶顯示當(dāng)前所選擇記錄的內(nèi)容,便于修改。因此,在程序的代碼中除了能夠獲得被操作的記錄外(如上節(jié)所示),還要回顯記錄內(nèi)容。程序代碼如下所示:學(xué) 生 基 本 數(shù) 據(jù) 錄 入 姓名: input type=text name=name size=20 value= 學(xué)號(hào): input type=text name=number size=20 value= 班級(jí): input type=text name=class size=20 value= 第42頁,共51頁。 性別: option value=男女 民族: input type=text name=min

16、zu size=20 value= 籍貫: input type=text name=jiguan size=20 value= 第43頁,共51頁。 聯(lián)系電話: input type=text name=phone size=20 value= 在上例中,顯示每個(gè)字段的同時(shí)顯示了其對(duì)應(yīng)的取值,在圖12-7的頁面中選擇“修改”后,屏幕顯示如圖12-9所示。第44頁,共51頁。圖12-9 修改頁面顯示第45頁,共51頁。第2步:建立數(shù)據(jù)修改程序??梢岳肧QL語句中的Update命令修改表中的記錄,程序代碼如下:%取得用戶輸入的數(shù)據(jù)t_name=Trim(request.form(name)t_

17、number=Trim(request.form(number)t_class=Trim(request.form(class)t_sex=Trim(request.form(sex)t_minzu=Trim(request.form(minzu)t_phone=Trim(request.form(phone)t_jiguan=Trim(request.form(jiguan)第46頁,共51頁。創(chuàng)建數(shù)據(jù)庫的連接Set conn = Server.CreateObject(ADODB.Connection)strProvider = Provider=sqloledb;Data Source=

18、zjf;Initial Catalog=txl;User ID=sa; Password=; conn.Open strProvider設(shè)置修改時(shí)的SQL語句field=array(t_name,t_number,t_class,t_sex,t_mizu,t_phone,t_jiguan)value=array(t_name,t_number,t_class,t_sex,t_minzu,t_phone,t_jiguan)sql=UPDATE t_student SET For i=0 To ubound(field) sql = sql & field(i) & = & value(i) & If i ubound(field) Then sql=sql & , El

溫馨提示

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

評(píng)論

0/150

提交評(píng)論