Press "Enter" to skip to content

ASP编程基础知识(二)

10、利用Application对象作计数器的语法

在网页的头部加入
Application.Lock
Application("counter") = Application("counter") + 1
Application.UnLock
在需要显示计数内容的网页的地方,加入下面的语句
response.write Application("counter")

11、利用Session对象保护后台管理页面admin.asp,防止未登陆用户进入

第一步、在网站后台网页需要权限保护的所有网页的头部加入下面的代码,
   if session("admin")<>"ok" then
   response.redirect"login.asp"
   response.end
   end if

第二步、在网站后台登陆页的检测表单发来的用户名和密码验证部分标准写法
AdmName=Request.Form("Name")
AdmPass=Request.Form("Pass")
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="Select * from Admin where name=’"&AdmName&"’ and pass=’"&AdmPass&"’"
Rs.Open SqlStr,conn,1,3

if Rs.EOF AND RS.BOF then
Response.Redirect("login.asp")
response.end
else
session("admin")="ok"
Response.Redirect("admin.asp")
response.end
end if

12、分页代码
sql = "select……………………省略了你的从表中取出所有数据的sql语句写法
Set rs=Server.Createobject("ADODB.RECORDSET")
rs.Open sql, conn, 1, 1
if not rs.eof then
    pages = 30 ‘定义每页显示的记录数
    rs.pageSize = pages ‘定义每页显示的记录数
    allPages = rs.pageCount ‘计算一共能分多少页
    page = Request.QueryString("page")’通过浏览器传递的页数
    ‘if语句属于基本的排错处理
    if isEmpty(page) or Cint(page) < 1 then
page = 1
    elseif Cint(page) > allPages then
page = allPages
    end if
    rs.AbsolutePage = page
    Do while not rs.eof and pages > 0
‘这里输出你要的内容………………
     pages = pages – 1
    rs.MoveNext
    Loop
else
Response.Write("数据库暂无内容!")
End if
rs.Close
Set rs = Nothing
‘分页页码连接和跳转页码程序
<form Action="" Method="GET">
<%
If Page <> 1 Then
   Response.Write "<A HREF=?Page=1>第一页</A>”
   Response.Write "<A HREF=?Page=" & (Page-1) & ">上一页</A>“
End If
If Page <> allPages Then
   Response.Write "<A HREF=?Page=" & (Page+1) & ">下一页</A>"
   Response.Write "<A HREF=?Page=" & allPages & ">最后一页</A>"
End If
%>
输入页数:<input TYPE="TEXT" Name="Page" SIZE="3"> 页数:<font COLOR="Red"><%=Page%>/<%=allPages %></font>
</form>
13、分行列显示图片和产品名称的代码(4列x3行=12个)
<%
Set Rs=Server.CreateObject("ADODB.RecordSet")
SqlStr="select top 12 * from myproduct"
Rs.Open SqlStr,conn,1,1
i=1
%>
<table width="90%"   border="1" cellspacing="0" sellpadding="0">
<tr>
<% 
do   while not rs.eof
%>
<td align="center">
<img src="<%=rs("imgurl")%>" width="52" height="120"><br>
<%=rs("productname")%>
</td>
<% if i mod 4=0 then response.write"</tr><tr>"
i=i+1
rs.movenext
loop
rs.close
%>
   </tr>
</table>

十四、ASP数据库连接之ACCESS-SQLSERVER
<%
IsSqlData=0    ‘定义数据库类别,0为Access数据库,1为SQL数据库
If IsSqlData=0 Then
Access数据库
datapath ="data/"    数据库目录的相对路径
datafile ="data.mdb"    数据库的文件名
c&Server.MapPath(""&datapath&""&datafile&"")
C&server.mappath(""&datapath&""&datafile&"")&";DRIVER={Microsoft Access Driver (*.mdb)};"
Else
SQL数据库
SqlLocalName ="(local)"     连接IP   [ 本地用 (local) 外地用IP ]
SqlUsername ="sa"       用户名
SqlPassword ="1"           用户密码
SqlDatabaseName="data"    数据库名
C & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"
END IF
On Error Resume Next
Set conn=Server.CreateObject("ADODB.Connection")
conn.open ConnStr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"
Response.End
End If
%>

<!– 判断网址是否合格并处理 –>
<%
url=trim(request.form("url"))
if left(url,7)<>"http://" then
url="http://"&url
end if
%>

<!– 显示时间为几月几日并处理 –>
<%
y=Month(date())
r=Day(date())
if len(y)=1 then y="0" & y
if len(r)=1 then r="0" & r
Response.Write   y & "月" & r & "日"
%>

<!– 限制某些IP访问网站 –>
<%
url_str=Request.ServerVariables("REMOTE_ADDR")
url=split(url_str,".")
if url(0)=127 and url(1)=0 and url(2)=0 and url(3)>0 and url(3)<256 then
else
response.Write(url_str)
end if
%>

<!– 设置文章显示格式 –>
<%
function HTMLEncode(fString)
if not isnull(fString) then
     fString = replace(fString, ">", ">")
     fString = replace(fString, "<", "<")
     fString = Replace(fString, CHR(32), " ")
     fString = Replace(fString, CHR(9), " ")
     fString = Replace(fString, CHR(34), """)
     fString = Replace(fString, CHR(39), "’")
     fString = Replace(fString, CHR(13), "")
     fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
     fString = Replace(fString, CHR(10), "<BR> ")

     HTMLEncode = fString
end if
end function
%>

1. ASP与Access数据库连接:
<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver
(*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile
%>
2. ASP与SQL数据库连接:
<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA
SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称
%>

建立记录集对象:

set rs=server.createobject("adodb.recordset")
rs.open SQL语句,conn,3,2

3. SQL常用命令使用方法:
(1) 数据记录筛选:
sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 like ‘%字段值%’ order by 字段名 [desc]"
sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 in (‘值1′,’值2′,’值3’)"
sql="select * from 数据表 where 字段名 between 值1 and 值2"

(2) 更新数据记录:
sql="update 数据表 set 字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

(3) 删除数据记录:
sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)

(4) 添加数据记录:
sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

(5) 数据记录统计函数:
AVG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加
引用以上函数的方法:
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)
用 rs("别名") 获取统的计值,其它函数运用同上。

(6) 数据表的建立和删除:
Create TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

10 Comments

  1. kangzj 2009-10-20

    只用asp开发过一个网站,现在已经忘光了,呵呵

    • admin 2009-10-20

      呵呵 这种东西你三天不用 马上就会全部忘记 呵呵 :arrow:

  2. TaoGOGO 2009-10-20

    用别人的东西做过一个cms,除了write函数之外其他的都不懂了

    • admin 2009-10-20

      做CMS? 你可真厉害 我自己都做不出一套网站出来 :-x

  3. Junan 2009-10-21

    哈哈~~~我要学习~~· :wink:

    • admin 2009-10-22

      呵呵 去学吧 学编程还是很有用滴!

  4. 无疆 2009-10-21

    :roll: ,这个是让我望而却步,真的不懂

    • admin 2009-10-22

      ASP的相对来说还是比较简单的 比PHP简单 可惜是一种即将过时的语言了~

  5. angel 2009-11-27

    不错,学习了哦。呵呵。

Leave a Reply to Junan Cancel reply

Your email address will not be published. Required fields are marked *