動態(tài)網(wǎng)站設(shè)計(jì)與開發(fā)第五章1課件_第1頁
動態(tài)網(wǎng)站設(shè)計(jì)與開發(fā)第五章1課件_第2頁
動態(tài)網(wǎng)站設(shè)計(jì)與開發(fā)第五章1課件_第3頁
動態(tài)網(wǎng)站設(shè)計(jì)與開發(fā)第五章1課件_第4頁
動態(tài)網(wǎng)站設(shè)計(jì)與開發(fā)第五章1課件_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

動態(tài)網(wǎng)站設(shè)計(jì)與開發(fā)第五章5.3ADO組件之Connection對象Activex數(shù)據(jù)對象課程引入與回顧數(shù)據(jù)庫的各種訪問技術(shù)利用connection對象來與數(shù)據(jù)庫建立連接,并進(jìn)行簡單的數(shù)據(jù)庫操作目標(biāo)利用Recordset對象實(shí)現(xiàn)添加、刪除或更新記錄操作利用Recordset對象實(shí)現(xiàn)數(shù)據(jù)記錄的分頁顯示關(guān)于記錄集保存了滿足查找條件的所有記錄。記錄集的兩個(gè)特殊位置:bof與eof(向前與向下移動、向后與向上移動)建立Recordset對象標(biāo)準(zhǔn)語法:SetRecordset對象實(shí)例=server.createobject(“ADODB.Recordset”)(Recordset對象實(shí)例名假設(shè)為rs)Rs.open[Source],[ActiveConnection],[CursorType],[LockType],[Options]參數(shù)說明SourceCommand對象名或SQL語句或數(shù)據(jù)表名ActiveConnectionConnection對象名或數(shù)據(jù)庫連接字符串CursorTypeRecordset對象記錄集中的指針類型(游標(biāo)類型)—詳見下表LockTypeRecordset對象的鎖定類型—詳見下表OptionsSource類型—詳見下表CursorType:指針類型說明游標(biāo)類型ADO常量描述僅向前游標(biāo)adOpenForwardOnly0只允許向前移動(缺省)鍵盤游標(biāo)adOpenKeySet1可看到其他用戶所做的部分?jǐn)?shù)據(jù)更改,不包括新增記錄動態(tài)游標(biāo)adOpenDynamic2可看到其他用戶所做的所有數(shù)據(jù)更改靜態(tài)游標(biāo)adOpenStatic3提供記錄集的靜態(tài)副本??床坏狡渌说母?。Adovbs.inc文件中包含著與ADO一起使用的常量定義清單,在安裝ASP時(shí)就安裝在服務(wù)器中了,一般會在WINDOWS安裝目錄下的ServicePack目錄下。

鎖定類型的進(jìn)一步說明常數(shù) 說明adLockReadOnly缺省值,Recordset對象以只讀方式啟動,無法運(yùn)行AddNew、Update及Delete等方法adLockPrssimistic當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)會暫時(shí)鎖住其他用戶的動作,以保持?jǐn)?shù)據(jù)一致性。adLockOptimistic當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)并不會鎖住其他用戶的動作,其他用戶可以對數(shù)據(jù)進(jìn)行增、刪、改的操作。adLockBatchOptimistic當(dāng)數(shù)據(jù)源正在更新時(shí),其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對數(shù)據(jù)進(jìn)行增、刪、改的操作。Options:Source類型Options參數(shù)值說明adcmdunknown-1Source參數(shù)類型未知(缺省)Adcmdtext1Source參數(shù)為命令類型Adcmdtable2Source參數(shù)是一個(gè)表名adcmdstoreproc3Source參數(shù)為一個(gè)存儲過程建立recordset對象具體方法(1)利用connection對象的execute方法來建立Dimdb,rsSetdb=server.createobject(“adodb.connection”)Db.open“dsn=addr”Setrs=db.execute(“select*fromusers”)說明:這種方法是最常用的方法。它沒有明確建立Command對象,但是會建立一個(gè)隱含的Command對象。建立Recordset對象的具體方法(3)利用Command對象的Execute方法建立的另一種形式

Dimdb,cmd,rs

Setdb=Server.CreateObject("ADODB.Connection")

db.Open"Dsn=addr“Setcmd=Server.CreateObject("ADODB.Command")

cmd.ActiveConnection=db

cmd.CommandText="Select*Fromusers"

Setrs=Server.CreateObject("ADODB.Recordset")

rs.Opencmd說明:這種方法明確建立三個(gè)對象,功能最強(qiáng)大。recordset對象常見屬性屬性說明SourceCommand對象名或SQL語句或數(shù)據(jù)表名ActiveConnectionConnection對象名或數(shù)據(jù)庫連接字符串CursorType指針類型(游標(biāo)類型)LockType鎖類型maxrecords控制從服務(wù)器取得的記錄集的最大記錄數(shù)目Pagesize數(shù)據(jù)分頁顯示時(shí)每一頁的記錄數(shù)Pagecount數(shù)據(jù)分頁顯示時(shí)數(shù)據(jù)頁的總數(shù)absolutepage當(dāng)前指針?biāo)诘臄?shù)據(jù)頁Absoluteposition當(dāng)前指針?biāo)诘挠涗浶蠦OF標(biāo)志著記錄集的開始,若當(dāng)前記錄位置在第一個(gè)記錄前則值為TrueEOF標(biāo)志著記錄集的結(jié)束,若當(dāng)前記錄位置在最后一個(gè)記錄后則值為TrueRecordCount返回記錄集的記錄總數(shù)關(guān)于記錄指針及記錄數(shù)的屬性Recordcount(在指針類型為鍵盤指針或靜態(tài)指針時(shí)可用)BofEof在記錄集為空的情況下,bof與eof同時(shí)為真利用記錄集的movenext方法可將指針指向下一條記錄利用以下幾條語句可達(dá)到對記錄集進(jìn)行遍歷Dowhilenotrs.eof…..(對當(dāng)前記錄進(jìn)行處理)Rs.movenextlooprecordset對象常見方法屬性/方法說明open打開記錄集close關(guān)閉記錄集MoveNext移至當(dāng)前目錄的下一條記錄MovePrevious移至當(dāng)前目錄的上一條記錄Move將記錄指針移到指定位置MoveFirst將記錄指針移到第一條記錄處MoveLast將記錄指針移到最后一條記錄處Addnew在記錄集尾添加一條記錄Delete刪除當(dāng)前記錄Update更新數(shù)據(jù)庫數(shù)據(jù)Cancelupdate取消數(shù)據(jù)更新Getrows從記錄集取得多行數(shù)據(jù)Resync與數(shù)據(jù)庫服務(wù)器同步更新利用Recordset對象查詢記錄<%Dimdb,rs,strSqlSetdb=Server.CreateObject("ADODB.Connection")db.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("address.mdb")Setrs=Server.CreateObject("ADODB.Recordset")strSql="Select*Fromusers"rs.OpenstrSql,dbDoWhileNotrs.Eof Response.Writers(“name”)&vbTab&rs(“age”)&“<br>” rs.MoveNextLooprs.CloseSetrs=nothingdb.CloseSetdb=nothing%>使用表格來顯示記錄<%Setconn=Server.CreateObject("ADODB.Connection")conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("Sample.mdb")Setrs=conn.Execute("成績單")%><HTML><bodybgcolor="beige"><center><tableborder="4"bordercolor="orange"><TRbgcolor="orange"align="middle"><%Fori=0tors.Fields.Count-1Response.Write"<TD><fontcolor=white><b>"&rs(i).Name&"</b></font></TD>"Next%></TR><%rs.MoveFirst '將目前的數(shù)據(jù)記錄移到第一項(xiàng)WhileNotrs.EOF '判斷是否過了最后一項(xiàng)Row="<TRalign=middle>"Fori=0tors.Fields.Count-1Row=Row&"<TD>"&rs(i)&"</TD>"NextResponse.WriteRow&"</TR>"rs.MoveNext '移到下一項(xiàng)Wend%></TABLE></CENTER></BODY></HTML>數(shù)據(jù)分頁顯示<% Dimdb,rs,strSql Setdb=Server.CreateObject("ADODB.Connection") db.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("address.mdb") Setrs=Server.CreateObject("ADODB.Recordset") strSql="Select*Fromusers" rs.OpenstrSql,db,1'注意參數(shù)設(shè)置 IfNotrs.BofAndNotrs.EofThen Dimpage_no IfRequest.QueryString("page_no")=""Then page_no=1 Else page_no=Cint(Request.QueryString("page_no"))'用Cint將字符串變?yōu)檎麛?shù) EndIf rs.PageSize=2'設(shè)置每頁2條記錄 rs.AbsolutePage=page_no'設(shè)置當(dāng)前顯示第幾頁 DimI'該變量用來控制顯示當(dāng)前頁記錄 I=rs.PageSize DoWhileNotrs.EofAndI>0'循環(huán)直到當(dāng)前頁結(jié)束或記錄集結(jié)尾 I=I-1 Response.Writers("name")&"<br>"'輸出姓名字段值 rs.MoveNext Loop Response.Write"請選擇數(shù)據(jù)頁:" ForI=1Tors.PageCount IfI=page_noThen'如是當(dāng)前頁,就不加超鏈接 Response.WriteI&" " Else'如不是當(dāng)前頁,就加上超鏈接 Response.Write"<ahref=‘9-8.asp?page_no="&I&"'>"&I&"</a> " EndIf Next Else Response.Write"該記錄集為空" EndIf %>利用Recordset對象更新數(shù)據(jù)庫<% Dimdb,rs,strSql '建立Connection對象 Setdb=Server.CreateObject("ADODB.Connection") db.Open"Dsn=addr"'這里利用數(shù)據(jù)源連接 '建立Recordset對象 Setrs=Server.CreateObject("ADODB.Recordset") strSql="Select*Fromusers" rs.OpenstrSql,db,0,2'注意參數(shù),鎖定類型為可以修改 '添加記錄 rs.AddNew rs("name")="李玫" rs("tel")="88888888" rs("age")=23 rs.Update '更新記錄(修改李玫的電話號碼) rs("tel")="66666666" rs.Update '刪除記錄,刪除李玫的記錄 rs.Delete rs.Update '省略關(guān)閉對象語句 %>Fields集合的屬性和方法屬性Count返回記錄集中字段個(gè)數(shù)方法Item返回一個(gè)字段對象,語法如下:SetField對象=Recordset對象.Fields.Item(字段名或字段索引值)也可以簡寫為

SetField對象=Recordset對象(字段名或字段索引值)輸出字段值的幾種方法Response.Writers("name")

Response.Writers.Fields("name")

Response.Writers.Fields("name").Value

Response.Writers.Fields.Item("name").Value

Response.Writers(1)

Response.Writers.Fields(1)

Response.Writers.Fields(1).Value

Response.Writers.Fields.Item(1).Value

示例6

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論