Active Server Page 基础问题合集

asp

2008-03-27 14:09

CSNG() CINT()SLNG     防止注入的办法之一

insert into 表 (字段)   values (N'中文中文')           带一个N 表示中文

SQL中         字段 is null 表示 空值
--------- update 表 set 字段=null
---------select * form 表 where 字段 is null

vbcrlf  字符 等于换行

replace(str,A,B)字符串 A 替换 B         【一般用语替换非法字符等】

chr(13) 是一个回车
Chr(10) 是个换行符
chr(32)   是一个空格符

单精度 双精度 太大 会出现 1.432435+7等数值会有问题
long 整型 或字符串   (VB下STRING曾经装下20M内容 无敌啊!)

A=split(STR,"分割")   LBound(A) 下标 UBound(A) 上标

IsObject(conn) 检测 对象 检测对象是否存在

Randomize     
a=clng(rnd()*100000000)

做站要做模块化名字一定要起好 文件位置一定要放一起
(后期修改 很麻烦的)

静态数组 Erase A
动态数组 Erase A 或 Set A=nothing


select count(DISTINCT id) from user_data 统计不重复   关键字 distinct

strs="select * from user_data "
set rs=lin2world_conn.execute(strs)
返回记录集的记录集是有功能限制的

update user_date set x=x   [from user_data1] where x=x
UPDATE扩展

ASP连接超时
1. Server.ScriptTimeout,
2. Connection对象的CommandTimeOut属性,
3. Command对象的CommandTimeOut属性,
4. IE浏览器的设置. 5分钟


str1="go.asp?i="&str
response.Redirect(str1)
可以带参数!!
上面如果报错   用server.URLEncode(str1)

select   a.x , b.xx form user_data1 as a,user_data2 as b where a.id=b.id
select 扩展

sql= "select * from table where name= '张三 ' or name= '李四 ' or name= '王五 ' or name= '赵六 ' or name = '钱七 ' "
简单写法
sql= "select * from table where name in( '张三 ', '李四 ', '王五 ', '赵六 ', '钱七 ') "

ASP VB 容错处理
on error   resume next

Response.Write( " <script >alert( '提交成功'); </script > ");
Response.Redirect( "index_hr.aspx ");
后台代码 优先执行
所以不会弹出对话框
Response.Write( " <script >alert( '提交成功'); location.href=index_hr.asp</script > ");


假设A=512.7,B=511,那么(A-B)的正确结果应当为1.7,但是通过ASP网页计算出来的结果却是1.7000000000005。不知道这种种情况是如何产生的,该如何修正?
<%=csng(a)%>                 很奇怪


JS下区分大小写   注意

单选多选   document.form.element.多或单.checked=true
document.form.element.多或单[x].value

下拉
document.form.element.下拉.selectedIndex=true
document.form.element.下拉.options[x].value

表单提交
HTML---HTML×
ASP --HTML ×
HTML--ASP √
ASP--ASP   √

ASP优化
1. 不要使用集合的方法获取数据
2. request("") 最好写成  request.QueryString("")
3. 经常使用Response.IsClientConnected 判断是否离开
4 尽量把对象变量转换成本地变量
5. 脚本 不混写   VBS   JS
6.  do while not rs.eof   每次检测是否在库底
改为
i1=rs.pagecount  
for ( i=0 to i1   )
next
7.避免使用长文件名
8.尽量使用相对路径访问其他文件
9.   My.FirstName= "金虎"
       My.LastName =   "马"
改为
With My
 .FirstName = "金虎"
 .LastName = "马"
 End with
10 少使用<%@ Language=VBScript %>
    必使用<%Option Explicit%>

11.不使用session的页面
<% @EnableSessi %>
12.
避免将非敏捷的组件缓存在 Application 或 Session 对象中
13.动态生成表格
response.write("")

<%= %> 强很多
14. Server.Transfer 代替 Response.Redirect
15.避免使用服务器变量
访问服务器变量会使 Web 站点向服务器发出一个特殊请求,并收集所有服务器变量
16.释放对象
当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”释放对象占用内存
17.用select case 不用多 if then end if

-----------------------------------------------------------------------------------------------------------------------------------
习惯篇:
最好写成过程型 代码
方便 维护 查找   修改

防止在线重复登陆   1.数据库.   登陆比较数据库   session_onEnd() 来判断是否离开
                             2用application   登陆时候对比帐号信息

购物车   1.session     ID数组  
             2.cookies  
           3.数据库

历史浏览 1.session   2.cookie

上一篇 and 下一篇 根据当前ID 查询大与和小与ID的ID

相关内容   可以用标签字段