国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
asp學(xué)習(xí)
ASP出來有好些年了,但還是有很多朋友徘徊在ASP的大門之外,關(guān)于她的本身有太多的內(nèi)容,要是細(xì)說,講幾天都講不完,這里只是說一些ASP與ACCESS的一些簡(jiǎn)單操作,給大家開一個(gè)小頭^^。
我們來看看一個(gè)簡(jiǎn)單留言本的構(gòu)成:
----------------------------------
1。ACCESS2000數(shù)據(jù)庫bookdata.mdb,放置在data目錄下
----------------------------------
有2個(gè)表:一個(gè)是admin,用于放置管理員信息,字段有id(自動(dòng)計(jì)數(shù)),username(文本),adminpsw(文本);一個(gè)是info,用于放置留言,字段有id(自動(dòng)計(jì)數(shù)),name(文本),from(文本),email(文本),neirong(備注),uptime(默認(rèn)值為now())。
!是不是發(fā)現(xiàn)在ACCESS里改動(dòng)數(shù)據(jù)后數(shù)據(jù)庫會(huì)變的很大?即使刪除數(shù)據(jù)?這里有個(gè)簡(jiǎn)單的方法,新建一個(gè)數(shù)據(jù)庫,把原來的數(shù)據(jù)庫全部導(dǎo)入,你就會(huì)看到數(shù)據(jù)庫縮小了不少^^,然后覆蓋回去吧
----------------------------------
2。數(shù)據(jù)庫連接文件conn.asp
----------------------------------
<%連接數(shù)據(jù)庫有多種方法,下面的采用較老版本ACCESS驅(qū)動(dòng)的連接方法
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("data/bookdata.mdb")  這里可以將mdb文件改名
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>
----------------------------------
3。留言本首頁index.asp
----------------------------------
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="conn.asp"--><!--包含連接文件-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ASP+ACCESS簡(jiǎn)單留言本</title>
<style type="text/css">
<!--
A:link,A:active,A:visited{TEXT-DECORATION:none ;Color:blue}
A:hover{TEXT-DECORATION:none;Color:red}
BODY,table,td{FONT-SIZE: 12px;COLOR: #000000;FONT-FAMILY:宋體;}
-->
}
</style>
</head>
<body><div align="center">
<table cellspacing=0 cellpadding=0 width=600 border=0>
      <tr>
        <td style="filter:shadow(color=#9966ff, strength=1)"><center><font size=3 color=blue>歡迎來到我的留言本,多多指教</font></center></td>
      </tr>
</table>
<table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td  align="right">‖<a href="add.asp">我要留言</a>‖<a href="login.asp">管理進(jìn)入</a>‖</td>
    </tr>
</table>
<%
最典型的ADO應(yīng)用
set rs=server.CreateObject("adodb.recordset")
建立數(shù)據(jù)查詢,以時(shí)間先后排序(近的在最上面)
strSQL = "SELECT * FROM info ORDER BY uptime DESC"
rs.Open strSQL,conn,1,1
如果有記錄則循環(huán)顯示所有數(shù)據(jù)
Do While Not rs.EOF
%>
<hr width="600" size="1" noshade height=1>
<table width=600 border="0" cellpadding="2" cellspacing="0">
<tr><td>來自 <% = rs("from") %> 的 <a href="mailto:<% = rs("email") %>"><% = rs("name") %></a> 于<% = rs("uptime") %> 寫下了
<% = rs("neirong") %>
</td></tr>
</table>
<%
rs.MoveNext
loop
rs.close  
set rs=nothing  
conn.close  
set conn=nothing
%>
</div></body></html>
----------------------------------
4。留言增加頁add.asp
----------------------------------
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="conn.asp"-->
<%
如果能從瀏覽器客戶端得到add的值,則執(zhí)行添加數(shù)據(jù)
dim cadd
cadd= request("action")
if cadd= "add" then
dim cname,cfrom,cemail,cneirong
Trim()函數(shù)的作用是將取得的數(shù)據(jù)前后空格去掉,如果有的話
cname=Trim(Request.form("name"))
cfrom=Trim(Request.form("from"))
cemail=Trim(Request.form("email"))
cneirong=Trim(Request.form("neirong"))
Set rs = Server.CreateObject("ADODB.Recordset")
注意下面的 1,2 這個(gè)是Recordset對(duì)象的LockType屬性,當(dāng)為1,2時(shí)才允許更新數(shù)據(jù)
1,1 為只讀(默認(rèn)) 詳情請(qǐng)查詢相關(guān)資料
rs.Open "info",conn,1,2
     rs.addnew
     rs("name")=cname
     rs("from")=cfrom
     rs("email")=cemail
     rs("neirong")=cneirong
     rs("uptime")=now()
     rs.update
rs.close  
set rs=nothing  
response.redirect "index.asp"
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>填寫留言</title>
<style type="text/css">
<!--
A:link,A:active,A:visited{TEXT-DECORATION:none ;Color:blue}
A:hover{TEXT-DECORATION:none;Color:red}
BODY,table,td{FONT-SIZE: 12px;COLOR: #000000;FONT-FAMILY:宋體;}
-->
}
</style>
<script>
function check(){
var name = document.addform.name.value;
var neirong= document.addform.neirong.value;
if (name=="" || neirong==""){
<%使用Recordset讀取數(shù)據(jù)
創(chuàng)建一個(gè)Recordset對(duì)象實(shí)列
set myRecordset=Server.CreateObject("ADODB.Recordset")
定義用于創(chuàng)建Recordset的SQL語句
SQL="select * from student"
打開Recordset對(duì)象,傳遞SQL語句和其他參數(shù)
myRecordset.open SQL, "DSN=StudentWD=magic;UID=Student"
移動(dòng)所返回的Recordset對(duì)象中的記錄,并把記錄輸出到HTML表中
%>
<table border=1>
<tr>
<%
for I=0 to myRecordset.fields.count-1
%>
<td><b><%=myRecordset(I).name%></b></td><%next%></tr>
<%
do while not myRecordset.BOF
%>
<tr><%
for j=0 to myRecordset.count-1
%>
<td aligh=top><%=myRecordset(I)%></td>
<% next %>
</tr>
<%
myRecordset.movenext
loop%>
</table>
<%@LANGUAGE="VBSCRIPT"%>
<!--#include virtual="/adovbs.inc"-->
<!--如果你使用了ADO常量,這個(gè)文件必須包含-->
<%
dim cadd
cadd= request("action")
if cadd= "add" then
  on error resume next
用Trim()函數(shù)去掉提交數(shù)據(jù)開頭和結(jié)尾的空格,如果有的話
  cname=Trim(Request.form("name"))
  cyear=Trim(Request.form("year"))
  cid=Trim(Request.form("id"))
 
  conn="DSN=student;uid=student;pwd=magic"
  set rs=server createobject("adodb.Recordset")
  rs.open "authors",conn,adoenstatic,adlockoptimistic
  rs.addnew
  rs("au_id")=cid
  rs("name")=cname
  rs("year")=int(cyear)
  rs.update
  rs.close
  set rs=nothing
on error的使用方法
  if err.number>0 then
  response.write "vbscript errors occured:"&"
"
  response.write "error number="&err.number&"
"
  response.write "error descr="&err.description&"
"
  response.write "help context="&err.helpcontext&"
"
  response.write "help path="&err.helppath&"
"
  response.write "native error="&err.nativeerror&"
"
  response.write "source="&err.sourcr&"
"
  else
  response.write "record was added fine!
"
  end if
end if
%>
<html>
<head>
<title>用Recordset向數(shù)據(jù)庫中增加數(shù)據(jù)</title>
<body bgcolor="#ffffff">
<!--下面的表單用于客戶端輸入數(shù)據(jù)-->
<form name="myauthor" action="addnew.asp?action=add",method="post">
author id: <input type="text" name="id"></p>
author name: <input type="text" name="name"></p>
year born: <input type="text" name="year"></p>
<input type="submit"></p>
</form></body></html>
我們可以很容易的利用SQL語句從數(shù)據(jù)庫中刷取出我們想要的數(shù)據(jù),如:
sql="select * from info order by time desc"
這條語句就是說從info表中按time字段的值排列取出所有數(shù)據(jù),我們?cè)鯓尤〕銮?0條呢?我在開始學(xué)習(xí)SQL的時(shí)候不知道用什么可以做到,只好用一個(gè)小循環(huán)來實(shí)現(xiàn),其實(shí)非常簡(jiǎn)單,這樣就可以拉:
sql="select top 10 * from info order by time desc"
但是我們一定要取出所有數(shù)據(jù)怎么辦呢?如果取出的數(shù)據(jù)比想象中的多怎么辦呢?難道在一頁里全部顯示?所以我們就要用到ASP數(shù)據(jù)庫應(yīng)用中很重要的一個(gè)方面:分頁顯示。
(等有時(shí)間再添  或哪位兄弟幫個(gè)小忙,寫詳細(xì)點(diǎn),拜托 )
(啊哈,今天心情不錯(cuò),繼續(xù)^^)
------------------------------------------------------------------------------------
第一種方法:
通過Recordset的GetRows方法(關(guān)于Recordset的更多信息可以參考ASP的幫助文件?有嗎?暈S,到網(wǎng)上搜索一下可以有一大堆),可以實(shí)現(xiàn)數(shù)據(jù)記錄的分頁顯示。比如下面的這個(gè)列子:
<%@ Language = VBs cript %>
<% Option Explicit %>
<%
 Dim iStart, iOffset
 iStart = Request("Start")
 iOffset = Request("Offset")
 if Not IsNumeric(iStart) or Len(iStart) = 0 then
    iStart = 0
 else
    iStart = CInt(iStart)
 end if
 if Not IsNumeric(iOffset) or Len(iOffset) = 0 then
    iOffset = 10
 else
    iOffset = Cint(iOffset)
 end if
 Response.Write "察看 " & iOffset & " 個(gè)記錄從 " & iStart & "開始
"
 Dim objConn, objRS
 Set objConn = Server.CreateObject("ADODB.Connection")
 objConn.Open "rovider=SQLOLEDB.1;Data Source=(local);uid=sa;pwd=;Initial    Catalog=pubs"
 Set objRS = Server.CreateObject("ADODB.Recordset")
 objRS.Open "SELECT * FROM Authors", objConn
 Dim aResults
 aResults = objRS.GetRows
 objRS.Close
 Set objRS = Nothing
 objConn.Close
 Set objConn = Nothing
 Dim iRows, iCols, iRowLoop, iColLoop, iStop
 iRows = UBound(aResults, 2)
 iCols = UBound(aResults, 1)
 If iRows > (iOffset + iStart) Then
     iStop = iOffset + iStart - 1
 Else
    iStop = iRows
 End If
 For iRowLoop = iStart to iStop
    For iColLoop = 0 to iCols
    Response.Write aResults(iColLoop, iRowLoop) & " "
   Next
    Response.Write "
"
  Next
 Response.Write "
"
 if iStart > 0 then
  顯示“前 10個(gè)”連接
    Response.Write "<A HREF=""paging.asp?Start=" & iStart-iOffset & _
          "&Offset=" & iOffset & """>前 " & iOffset & "</A>"
  end if
 if iStop < iRows then
  顯示“后 10個(gè)”連接
   Response.Write " <A HREF=""paging.asp?Start=" & iStart+iOffset & _
           "&Offset=" & iOffset & """>后 " & iOffset & "</A>"
 end if
%>
(大家還可以看到更多的使用Recordset方法的列子)
第二種方法:
這個(gè)也不能說是第二種了,因?yàn)樗贿m合ACCESS,通過 MS SQL的存儲(chǔ)過程。
假設(shè)我們要對(duì)數(shù)據(jù)表MyTable的數(shù)據(jù)實(shí)現(xiàn)分頁顯示,首先寫一個(gè)存儲(chǔ)過程如下:
CREATE PROCEDURE sp_PagedItems
     (
       @Page int,
       @RecsPerPage int
      )
  AS
  -- 加快表的 插入速度
  SET NOCOUNT ON
  -- 開始記錄 號(hào)
  DECLARE @RecCount int
  SELECT @RecCount = @RecsPerPage * @Page + 1
  --創(chuàng)建臨時(shí) 表
  CREATE TABLE #TempItems
  (
      ID int IDENTITY,
      Name varchar(50),
      Price currency
 )
  -- 準(zhǔn)備臨時(shí) 表
  INSERT INTO #TempItems (Name, Price)
      SELECT Name,Price FROM MyTable ORDER BY Price
  -- 求出要查 詢的最小ID和最大ID
  DECLARE @FirstRec int, @LastRec int
  SELECT @FirstRec = (@Page - 1) * @RecsPerPage
  SELECT @LastRec = (@Page * @RecsPerPage + 1)
  -- 得到實(shí)際 的記錄,并返回是否還有數(shù)據(jù)!
  SELECT *,
      MoreRecords =
     (
       SELECT COUNT(*)
       FROM #TempItems TI
       WHERE TI.ID >= @LastRec
     )
  FROM #TempItems
  WHERE ID > @FirstRec AND ID < @LastRec
  -- 恢復(fù)設(shè)置
  SET NOCOUNT OFF
  在這個(gè)存儲(chǔ)過程里,我們首先創(chuàng)建一個(gè)全部記錄的臨時(shí)表,并增加了一個(gè)自動(dòng)編號(hào)的字段ID。這樣,不同的記錄就有一個(gè)遞增的唯一標(biāo)志。
  根據(jù)當(dāng)前的頁號(hào)和每頁的記錄數(shù),可以計(jì)算出每頁的最小和最大的ID。從而得到當(dāng)前頁的所有記錄。
  為了顯示的方便,存儲(chǔ)過程還計(jì)算了 MoreRecords字段,作為顯示下一頁的判斷條件。
  利用了這個(gè)存儲(chǔ)過程的程序代碼如下:
 <%
      每頁顯示10條
      Const iRecordsPerPage = 10
      Dim currentPage  當(dāng)前頁號(hào)
      Dim bolLastPage  在最后一頁?
      
     if len(Request.QueryString("page")) = 0 then
          currentPage = 1
     else
          currentPage = CInt(Request.QueryString("page"))
     end if
      得到當(dāng)前頁的記錄
      strSQL = "sp_PagedItems " & currentPage & "," & iRecordsPerPage
      objRS.Open strSQL, objConn
      
      判斷是否在最后一頁
     if Not objRS.EOF then
          if CInt(objRS("MoreRecords")) > 0 then
              bolLastPage = False
          else
              bolLastPage = True
          end if
      end if
  %>
  

 <TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 ALIGN=CENTER>
  <TR><TH COLSPAN=2 BGCOLOR=NAVY>
      <FONT SIZE=+1 COLOR=WHITE>
           List of Items
      </FONT>
  </TH></TR>
 <%
      Do While Not objRS.EOF %>
          <TR><TD ALIGN=LEFT BGCOLOR=GRAY>
             <%=objRS("Name")%>
          </TD><TD ALIGN=CENTER BGCOLOR=GRAY>
             <%=FormatCurrency(objRS("rice"))%>
          </TD></TR>
  <%     objRS.MoveNext
      Loop %>
 </TABLE>
  
  <CENTER>
 <%
  第一頁不 顯示“前一頁”
 if currentPage > 1 then %>
      <INPUT TYPE=BUTTON VALUE="<< 前 <%=iMaxRecords%> 記錄 "
     ONCLICK="document.location.href=thispage.asp?page=<%=currentPage-1%>"> ;
          
 <% end if
  最后一頁 不顯示“后一頁”
 if Not bolLastPage then %>
      <INPUT TYPE=BUTTON VALUE="后 <%=iMaxRecords%> 記錄 >>"
     ONCLICK="document.location.href=thispage.asp?page=<%=currentPage+1%>"> ;
 <% end if %>
  </CENTER>
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
asp常用代碼大全
用ASP上傳Excel 表格并導(dǎo)入到數(shù)據(jù)庫
一小時(shí)ASP入門
ASP連接Access數(shù)據(jù)庫幾種常見方法
整理了一些ASP初學(xué)者常用的代碼(下)
asp2
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服