山云文库
当前位置:首页 » ASP编程实用20例 » 正文

ASP编程实用20例

2010-09-10 17:11:36

《asp.net编程精彩百例》pdg
《asp.net编程精彩百例》pdgASP编程实用20例

1. 如何用 Asp 推断你的网站的虚拟物理途径 运用 Mappath 办法< p align="center" >< font size="4" face="Arial" >< b > The Physical path to this virtual website is: < /b >< /font > < font color="#FF0000" size="6" face="Arial" > < %= Server.MapPath("\")% > < /font >< /p >2.我如何了解运用者所用的扫瞄器 我如何了解运用者所用的扫瞄器 我如何了解运用者 运用 the Request object 办法strBrowser=Request.ServerVariables("HTTP_USER_AGENT") If Instr(strBrowser,"MSIE") < > 0 Then Response.redirect("ForMSIEOnly.htm") Else Response.redirect("ForAll.htm") End If3.如何计算每天的均匀反复访咨询人数 如何计算每天的均匀反复访咨询人数 答:处置办法< % startdate=DateDiff("d",Now,"01/01/1990") if strdate< 0 then startdate=startdate*-1 avgvpd=Int((usercnt)/startdate) % >显示结果< % response.write(avgvpd) % > that is it.this page have been viewed since November 10,19984.如何显示随机图象 如何显示随机图象< % dim p,ppic,dpic ppic=12 randomize p=Int((ppic*rnd)+1) dpic="graphix/randompics/"&p&".gif" %>显示< img src="< %=dpic% >" >

5.如何回到往日的页面 如何回到往日的页面 答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >6.如何确定对方的 IP 地址 如何确定对方的 答:< %=Request.serverVariables("REMOTE_ADDR)% >7.如何链结到一副图片上 如何链结到一副图片上 答:< % @Languages=vbs cript % > < % response.expires=0 strimagename="graphix/errors/erroriamge.gif" response.redirect(strimagename) %>8.强迫输入密码对话框 强迫输入密码对话框 答:把这句话放载页面的扫尾< % response.status="401 not Authorized" response.end %>9.如何传递变量从一页到另一页 如何传递变量从一页到另一页 答:用 HIDDEN 类型来传递变量< % form method="post" action="mynextpage.asp" > < % for each item in request.form % > < input namee="< %=item% >" type="HIDDEN" value="< %=server.HTMLEncode(Request.form(item)) % >" > < % next % > < /form >10.为何我在 asp 次第内运用 msgbox,次第出错说没有权限 为何我在 , 答:由于 asp 是效劳器运转的,假设能够在效劳器显示一个对话框,那样你只好等有 人按了确定之后,你的次第才干承袭实行,而平常效劳器不或许有人守着,因此微软不得不由

止那个函数,并告知你没有权限。

但是 ASP 和客户端脚本结合倒能够显示一个对话框,如 下:< % yourVar="测试对话框"% > < % s cript language=''javas cript'' > alert("< %=yourvar% >") < /s cript >11.有没有办法保卫自己的源代码,不给人看到 有没有办法保卫自己的源代码, 有没有办法保卫自己的源代码 答: 能够去下载一个微软的 Windows s cript Encoder, 它能够对 asp 的脚本和客户端 javas cript/vbs cript 脚本停止加密。

12.怎么样才干将 query string 从一个 asp 文件传送到另一个 怎么样才干将 答:前者文件参加下句:Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))13.global.asa 文件总是不起作用 答:只好 web 名目设置为 web application, global.asa 才有效,同时一个 web application 的根名目下 global.asa 才有效。

IIS 能够运用 Internet Service Manager 设置 application setting 怎么样才干使得 htm 文件仿佛 asp 文件一样能够实行脚本代码? 14.怎么样才干使得 htm 文件仿佛 asp 文件一样能够实行脚本代码 怎么样才干使得 答:Internet Sevices Manager - > 抉择 default web site - >右鼠键- >菜单属性-〉主名目- > 运用次第设置(Application Setting)- > 点击按钮 "配置"- > app mapping - >点击按钮"Add" - > executable browse 抉择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入 PUT.DELETE 全部确定即可。

但是值得留意的是如此对 htm 也要由 asp.dll 处置,成效将降低。

15.如何注册组件 如何注册组件 答:有两种办法。

第一种办法:手工注册 DLL 这种办法 IIs 时常运用和其它的 Web Server。

它需求你在 命令行方式上去实行,进入到包括有 DLL 的名目,并输入:regsvr32 component_name.dll 例 如 c:\temp\regsvr32 AspEmail.dll 它会把 dll 的特定信息注册入效劳器中的注册表中。

接着这 个组件就能够在效劳器上运用了, 但是那个办法有一个缺陷。

当运用这种办法注册终了组件 后,该组件务必要相应的设置 NT 的匿名帐号有权限实行那个 dll。

特殊是一些组件需求读 取注册表,因此,那个注册组件的办法仅仅是运用在效劳器上没有 MTS 的状况下,要取消 注册那个 dll,运用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll 第二种办法: 运用 MTS(Microsoft Transaction Server)MTS 赞同你指定只好有特权的用户 才能够访咨询组件, 大大提高了网站效劳器上的安全性设置。

MTS 上注册组件的步骤如下: 在 1) 翻开 IIS 管理操作台。

2) 展开 transaction server,右键单击"pkgs installed"接着抉择"new package"。

3) 单击"create an empty package"。

4) 给该包命名。

5) 指定 administrator 帐号或则运用"interactive" (假设效劳器常常是运用 administrator

登陆的话) 。

6) 如今运用右键单击你刚树立的那个包下面展开后的"components"。

抉择 "new then component"。

7) 抉择 "install new component" [b]。

8) 找到你的.dll 文件接着抉择 next 到完成。

要删除那个对象,只需抉择它的图标,接着抉择 delete。

附注:特殊要留意第二种办法,它是用来调试自己编篡组件的最好办法,而不用每次 都需求从头启成效械了。

16. ASP 与 Access 数据库衔接: 数据库衔接:<%@ language=VBs cript%> <% 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 %>17. ASP 与 SQL 数据库衔接: 数据库衔接:<%@ language=VBs cript%> <% 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,218. 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 …) valuess (值 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("别名") 猎取统的计值,其它函数运用同上。

数据表的树立和删除:CREATE TABLE 数据表称号(字段 1 类型 1(长度),字段 2 类型 2(长度) …… )例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表称号19. 记载集对象的办法 记载集对象的办法: rs.movenext 将记载指针从往后的位子向下移一行

rs.moveprevious 将记载指针从往后的位子向上移一行 rs.movefirst 将记载指针移到数据表第一行 rs.movelast 将记载指针移到数据表最终来一行 rs.absoluteposition=N 将记载指针移到数据表第 N 行 rs.absolutepage=N 将记载指针移到第 N 页的第一行 rs.pagesize=N 设置每页为 N 条记载 rs.pagecount 依照 pagesize 的设置前往总页数 rs.recordcount 前往记载总数 rs.bof 前往记载指针能否超出数据表首端,true 显示是,false 为否 rs.eof 前往记载指针能否超出数据表末端,true 显示是,false 为否 rs.delete 删除往后记载,但记载指针不或许向下移动 rs.addnew 添加记载到数据表末端 rs.update 更新数据表记载 20 Recordset 对象办法 Open 办法recordset.Open Source,ActiveConnection,CursorType,LockType,OptionsSource Recordset 对象能够经过 Source 属性来衔接 Command 对象。

Source 参数能够是一个 Command 对象称号、一段 SQL 命令、一个指定的数据表称号或是一个 Stored Procedure。

假 如省略那个参数,系统则采取 Recordset 对象的 Source 属性。

ActiveConnection

Recordset 对象能够经过 ActiveConnection 属性来衔接 Connection 对象。

那个地点的 ActiveConnection 能够是一个 Connection 对象或是一串包括数据库衔接信息 (ConnectionString)的字符串参数。

CursorType Recordset 对象 Open 办法的 CursorType 参数显示将以啥样的游标类型启动数据,包 括 adOpenForwardOnly、adOpenKeyset、adOpenDynamic 及 adOpenStatic,分述如下:常数 常数值 阐明 缺省值,启动一个只能向前移动的游标(Forward Only) 启动一个 Keyset 类型的游标 启动一个 Dynamic 类型的游标 启动一个 Static 类型的游标adOpenForwardOnly 0 adOpenKeyset adOpenDynamic adOpenStatic 1 2 3以上几个游标类型将直截了当妨碍到 Recordset 对象全部的属性和办法,以下列表阐明他们 之间的差异。

Recordset 属性 其中 NextRecordset 办法并不适用于 Microsoft Access 数据库。

LockType Recordset 对象 Open 办法的 LockType 参数显示要采取的 Lock 类型,假设疏忽那个参 数,那样系统会以 Recordset 对象的 LockType 属性为预设值。

LockType 参数包括 adLockReadOnly、adLockPrssimistic、adLockOptimistic 及 adLockBatchOptimistic 等,分述如 下:常数 adLockReadOnly常数值 1阐明 缺省值, Recordset 对象以只读方式启动, 无法运转 AddNew、 Update 及 Delete 等办法 当数据源正在更新时, 系统会暂时锁住其他用户的举措, 以adLockPrssimistic2坚持数据分歧性 当数据源正在更新时, 系统并不或许锁住其他用户的举措, 其adLockOptimistic3他用户能够对数据停止增、删、改的操作 当数据源正在更新时, 其他用户务必将 CursorLocation 属性 改为 adUdeClientBatch 才干对数据停止增、 删、改的操作adLockBatchOptimistic 4