久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

6大對(duì)象和數(shù)據(jù)庫操作簡(jiǎn)單學(xué)

 我依然125 2010-11-08

ASP學(xué)習(xí)步驟:
1,、5個(gè)對(duì)象 Request,、Response,、Session,、Server,、Applictaion 
2,、兩個(gè)數(shù)據(jù)庫組件 Adodb.Recordset Adodb.Connection
3、Request.From("表單名稱") 得到From表單數(shù)據(jù)
4,、Request.QueryString("Url參數(shù)") 得到Url參數(shù)
5,、index.asp?act=save 
6、Request.QueryString("act")

一,、request
Request.Cookies("Cookie") 得到Cookies  Cookies  一般用于存儲(chǔ)用戶信息 用于驗(yàn)證 一般用于用戶驗(yàn)證之類的 Session也有同樣的類型 區(qū)別是Session是存在服務(wù)器上 Cookies是存在用戶硬盤上 一般可以省略點(diǎn)方法 直接用Request("參數(shù)名") 他會(huì)依次用From QueryString Cookies去取值  Request 差不多就這些了

二,、Response
Response.Write 向?yàn)g覽器輸出
Response.Redirect 重轉(zhuǎn)向
Response.End 停止向?yàn)g覽器輸出
Response.Cookies 向客戶端寫Cookies
Response.Cookies("CookieName") = "test"
Responsp.Cookies("CookieName").Domain="china228.com" 這樣寫的話 在所有的China228.com的域名下用Request.Cookies("CookieName")都能得到

三、Session
Session("SessionName") = "" 把信息存儲(chǔ)到Session里面
If Session("SessionName") <> "" Then 判斷Session是否存在 一般用于驗(yàn)證 Session("SessionName") = "" 清空Session
Session.Abandon 清空所有Session
Session.TimeOut = 100 設(shè)置Session過期時(shí)間 單位為秒
Session是存在服務(wù)器上 Cookies是存在用戶硬盤上 Session重啟了進(jìn)程池就沒有了 Cookies我們就不能控制了 除非寫個(gè)程序 強(qiáng)制清空

四,、Server 
Server.Mappath 把虛擬路徑轉(zhuǎn)為實(shí)際路徑,,如果你的程序在C盤 那么你用path = Server.Mappath("/")  那么和path = "c:\" 是一樣的 基于根目錄
Server.CreateObject 這個(gè)注冊(cè)組件的  比較常用 Server.CreateObject("Adodb.RecordSet") 注冊(cè)一個(gè)數(shù)據(jù)庫組件

五 Applictaion  是一個(gè)全局對(duì)象 他和Session是一樣的 區(qū)別在于 Session是存儲(chǔ)單個(gè)的用戶信息 Application是存儲(chǔ)全局信息
Application("Site") = "Http://www.webjx.com" 只要在該站點(diǎn)下的所有文件都可以調(diào)用這個(gè)Application  二級(jí)域名不可以調(diào)用這個(gè)Application,而要用Cookies 設(shè)置他的可用域名
=======================================================
六,、Adodb.Connection 連接數(shù)據(jù)庫 先注冊(cè)一個(gè)Conn對(duì)象 Set Conn = Server.CreateObject("Adodb.Connection")  //用Server對(duì)象的CreateObject方法  然后再用Connection的open方法連接數(shù)據(jù)庫 Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Date.mdb")       Server.Mappath("Date.mdb")即當(dāng)前目錄下面的Date.Mdb  一般我們把這個(gè)放在Conn.asp里面
<%
Dim Conn,ConnStr
Set Conn = Server.CreateObject("Adodb.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Date.mdb")
Conn.Open ConnStr
%>
Dim是定義一個(gè)變量,,asp是弱類型語言 不用定義也可以的,不像C# Java之類的要先定義才能使用
Execute 方法   Conn.Execute(Sql) 執(zhí)行一條SQL語句  Conn.Execute("Insert Into Tablename(1,2,)Values(1,2)")
Conn.Close 關(guān)閉對(duì)象  insert 插入一條數(shù)據(jù) update修改數(shù)據(jù) delete刪除 select 查詢


七,、Adodb.Recordset 返回一個(gè)記錄集 先也是注冊(cè)對(duì)象 Set Rs = Server.CreateObject("Adodb.Recordset") 這個(gè)rs是可以自己定義的 不一定一定要用rs 或者conn    因?yàn)檫@些是Com組件(也就是用deiphl C++寫的dll,,一些asp本身不能實(shí)現(xiàn)的功能 ) 不是asp的內(nèi)置對(duì)象 ,,所以要注冊(cè)對(duì)象   

然后也是用Open方法打開記錄集 Rs.Open "Select * From TableName",Conn,1,3   Rs.Open Sql語句,Conn對(duì)象,1,3 (1,3參數(shù)一會(huì)講)Sql語句 一般是一條查詢語句  Conn對(duì)象就是剛才上面Connection打開的數(shù)據(jù)庫對(duì)象

1 打開數(shù)據(jù)庫的游標(biāo)類型 
3 這個(gè)參數(shù)這里 如果改為1的話 就不能對(duì)庫進(jìn)行操作,不能更新和刪除(不能使用Rs.Addnew,Rs.Update,Rs.Delete)  改為2 以獨(dú)占的形式打開(當(dāng)有一個(gè)用戶在修改庫的時(shí)候,,就會(huì)鎖定庫,,保持?jǐn)?shù)據(jù)的一致性)
3 可以對(duì)庫進(jìn)去任何操作,包括刪除 修改 更新 添加
這里一般我會(huì)用兩種 在列表頁的時(shí)候 因?yàn)椴挥貌僮鲙?,只讀查詢就行了 Rs.Open Sql,Conn,1,1   在添加修改數(shù)據(jù)的時(shí)候 用Rs.Open Sql,Conn,1,3   Rs.Bof  是否為第一條數(shù)據(jù) 是 返回 True 反之 返回False  Rs.Fof 是否為最后  一條數(shù)據(jù) 是 返回 True 反之 返回False 那就可以用這個(gè)來判斷數(shù)據(jù)庫里有沒有記錄  if rs.eof and rs.bof then 就是說當(dāng)前游標(biāo) 不在第一條也不在最后一條 就說明沒有記錄  if rs.eof then 這樣說明有記錄 那么我們就用個(gè)循環(huán)把數(shù)據(jù)輸出  Rs和Conn一樣理解,,是變量

Set Rs = Server.CreateObject("Adodb.Recordset")
Rs.Open Sql,Conn,1,1
If Not Rs.Eof Then 如果不在記錄集的未端,說明有記錄
    Do While Not Rs.Eof  直到該記錄集的最后 跳出循環(huán)
        Response.Write Rs("字段名")
    Rs.MoveNext 游標(biāo)向下移動(dòng)
    Loop
End If
Rs.Close //注銷對(duì)象
Set Rs = Nothing //釋放資源

因?yàn)閍sp是弱類型的 定量對(duì)象時(shí)不用定義類型
如果是C# 就是
int i;  string str; asp 就 dim i,str 還有asp定義變量不能賦初始值

C#  int i = 1;
asp   dim i  i = 1

下面講一下指針移動(dòng)(就上面的游標(biāo),,應(yīng)該是指針,游標(biāo)是C語言里面的,,asp沒有)
Rs.MoveNext 向下移動(dòng)一條
Rs.MovePrevious 向上移動(dòng)一條
Rs.Movefirst 移動(dòng)到第一條
Rs.MoveLast 移動(dòng)到最后一條
Rs.Absoluteposition = n 移動(dòng)記錄指針到第n行
常用的就Rs.MoveNext

講asp分頁的幾個(gè)方法屬性
Rs.Pagesize = n 每頁顯示N條數(shù)據(jù)
Rs.absolutepage = n 將記錄指針移動(dòng)第N頁的第一條數(shù)據(jù)
Rs.RecordCount 記錄集的總記錄數(shù)
Rs.PageCount 記錄集的總頁數(shù)

<%
Dim Conn,ConnStr
Set Conn = Server.CreateObject("Adodb.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Date.mdb")
Conn.Open ConnStr

Set Rs = Server.CreateObject("Adodb.Recordset")
Rs.Open Sql,Conn,1,1
PageSize = 20
Rs.PageSize = PageSize '每頁顯示20條
curpage = Request.QueryString("Page") '得到當(dāng)前頁數(shù)
If curpage = "" Or IsNumeric(curpage) Or (curpage-Rs.pagecount) > 0 Then
    '如果curpage等于空 或者 不是數(shù)值類型 或者 curpage大于總數(shù)
    curpage = 1
    '那么curpage等于1
End If
Rs.absolutepage = curpage '設(shè)置當(dāng)前記錄集頁面
i = 1
If Not Rs.Eof Then 如果不在記錄集的未端,說明有記錄
    Do While Not Rs.Eof and i < PageSize   如果已經(jīng)是數(shù)據(jù)集的最后一條記錄 或者 i已經(jīng)大于 Rs.PageSize 就退出
        Response.Write Rs("字段名")
    i = i + 1 每循環(huán)一次 i + 1
    Rs.MoveNext 指針向下移動(dòng)
    Loop
End If
%>

<%if curpage=1 then%>
首頁
<%else%>
<a href="?page=1">首頁</a>
<%end if%>

<%if curpage=1 then%>
上一頁
<%else%>
<a href="?page=<%=curpage-1%>">上一頁</a>
<%end if%>

<%if rs.pagecount<curpage+1 then%>
下一頁
<%else%>
<a href="?page=<%=curpage+1%>">下一頁</a>
<%end if%>

<%if rs.pagecount<curpage+1 then%>
尾頁
<%else%>
<a href="?page=<%=rs.pagecount%>">尾頁</a>
<%end if%>

說明  curpage 是上面用Reqeust.Querystring得到的當(dāng)前頁
首頁:
這個(gè)使用當(dāng)前頁是否為第一頁時(shí)判別,,如果當(dāng)前為第一頁(也就是首頁),,那么顯示首頁兩字,沒有鏈接,,否則提供直接跳轉(zhuǎn)到首頁的鏈接,。
上一頁:
當(dāng)前為第一頁時(shí),鏈接失效,,反過來,鏈接到當(dāng)前面的上一頁,,這里使用:<%=curpage-1%>,,就是用當(dāng)前的頁數(shù)減去1,得到上一頁,。
下一頁:
這里需要使用rs.pagecount這個(gè)屬性來比較,,假如總頁數(shù)小于當(dāng)前頁數(shù)加1的值,那表明這就是第后一頁,,鏈接將失效,,否則鏈接到下一頁
尾頁:
和下一頁的功能一樣判定出是最后頁時(shí)鏈接失效,,否則將當(dāng)前頁指定為rs.pagecount(總頁數(shù)),。

<%
Rs.Close //注銷對(duì)象
Set Rs = Nothing //釋放資源
%>

Rs.Addnew  這是新增一條記錄 打開的數(shù)據(jù)集必須為1,3

Set Rs = Server.CreateObject("Adodb.Recordset")
Sql = "Select * From Tealename"
Rs.Open Sql,Conn,1,3
Rs.Addnew() 添加記錄到記錄集未端
Rs("字段名1") = 值1
Rs("字段名2") = 值2
Rs("字段名3") = 值3
Rs.Update() 將修改更新到數(shù)據(jù)庫內(nèi)
Rs.Close
Set Rs = Nothing
%>
Rs.Update 更新數(shù)據(jù)

Set Rs = Server.CreateObject("Adodb.Recordset")
Sql = "Select * From Tealename Where id = 1"  '修改id為1的數(shù)據(jù)
Rs.Open Sql,Conn,1,3
Rs("欲更新的字段名1") = 更新后的值1
Rs.Update() 將修改更新到數(shù)據(jù)庫內(nèi)
Rs.Close
Set Rs = Nothing
Rs.Delete 刪除

Set Rs = Server.CreateObject("Adodb.Recordset")
Sql = "Select * From Tealename Where id = 1"  '刪除id為1的數(shù)據(jù)
Rs.Open Sql,Conn,1,3
Rs.Delete() '刪除當(dāng)前記錄,但指針不會(huì)向下移動(dòng),所有如果要?jiǎng)h除多條數(shù)據(jù)的時(shí)候 要用到循環(huán)
Rs.Close
Set Rs = Nothing

兩大數(shù)據(jù)庫操作對(duì)象 屬性 講教完畢

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多