推荐一篇不错的新手asp编程的基本法则

来源:asp之家 时间:2011-04-15 11:08:00 

一、新手常犯的错误

在论坛看到很多帖子代码中都有一个共同的基本错误,字段类型错误。

程序和数据库是紧紧相连的,数据库字段文本型或时间型的都使用单引号

比如下面这段修改语句:

conn.execute "update Counts set counts='"&counts&"' where num="&num&" and Atime='"&now()&"'" 

等号左边都是字段名,等号右边是传值过来的变量名,counts 字段是文本型,所以写入时必须前后加单引号,无论是写入还是查询都一样,后面的查寻语句中,num 字段是数字型,所以前后就没有单引号了,Atime 字段是时间型所以前后也要加单引号。

最重要的是以ID查询,ID字段是唯一的并且数字类型,很明显查询ID号时前后也不能有单引号

conn.execute "update Counts set counts='"&counts&"' where id='"&id&"'" '错误写法 
conn.execute "update Counts set counts='"&counts&"' where id="&id '正确写法 

二、ACCESS 数据库连接

通常数据库连接有两种方式,新手基本不知道用哪一种方式,或者在什么情况下用哪一种,又或者不知道两者的原理

①直接连接数据库文件

Set conn = Server.CreateObject("ADODB.Connection") 
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("database/yanhang.mdb") 

②通过数据源来连接数据库文件

Set conn = Server.CreateObject("ADODB.Connection") 
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("database/yanhang.mdb") 

那么,两者到底哪一个好呢,当然是第二种,因为第一种其实就是客户端浏览器直接读取数据库的,所以安全方面差很多,第二种通过数据源连接,是以服务器数据源工具连接的,与客户端没关系,所以数据库不会暴露给客户端,安全系数高很多。

ACCESS 数据库对应程序的应用:①直接连接数据库文件

conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("database/yanhang.mdb") 

这样的数据库连接方式,添加语句:

set rs=server.createobject("adodb.recordset") '(正确写法) 
rs.open "select * from dndj",conn,1,3 
rs.addnew 
rs("bh") = bh 
rs("bm") = bm 
rs("xm") = xm 
rs("xsq") = xsq 
rs.update 
rs.close 
set rs=nothing 

set rs=server.createobject("adodb.recordset") '(错误写法) 
sql="insert into dndj(bh,bm,xm,xsq) values('bh','bm','xm','xsq')" 
rs.open sql,conn,1,3 

ACCESS 数据库对应程序的应用:②通过数据源来连接数据库文件

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("database/yanhang.mdb") 

这样的数据库连接方式,添加语句:

conn.execute "insert into dndj(bh,bm,xm,xsq) values('"&bh&"','"&bm&"','"&xm&"','"&xsq&"')" '(正确写法) 

set rs=server.createobject("adodb.recordset") '(错误写法) 
sql="insert into dndj(bh,bm,xm,xsq) values('bh','bm','xm','xsq')" 
rs.open sql,conn,1,3 

三、双引号的应用

通常我们写超级连接这样 <a href="abc.asp?id=<%=rs("id")%>">超级连接</a>
但要是把这个超级连接编译进asp里面呢

response.write "<a href=""abc.asp?id="&rs("id")&""">超级连接</a>" '(正确写法) 
response.write "<a href='abc.asp?id="&rs("id")&"'>超级连接</a>" '(正确写法) 
response.write "<a href=abc.asp?id="&rs("id")&">www.cidianwang.com</a>" '(正确写法) 

response.write "<a href="abc.asp?id=<%=rs("id")%>">超级连接</a>" '(错误写法) 
response.write "<a href="abc.asp?id="&rs("id")&"">超级连接</a>" '(错误写法) 

表单编译进asp里 <input type="text" name="id" value="<%rs("id")%>" /> 


response.write "<input type=""text"" name=""id"" value="""&rs("id")&""" />" '(正确写法) 注意:这里有三个双引号 
response.write "<input type='text' name='id' value='"&rs("id")&"' />" '(正确写法) 
response.write "<input type=text name=id value="&rs("id")&" />" '(正确写法) 

response.write "<input type="text" name="id" value="<%=rs("id")%>" />" '(错误写法) 
response.write "<input type="text" name="id" value=""&rs("id")&"" />" '(错误写法) 

标签:asp,编程,基本法则
0
投稿

猜你喜欢

  • 微信公众平台开发教程⑤ 微信扫码支付模式介绍

    2023-11-14 10:40:10
  • python误差棒图errorbar()函数实例解析

    2023-12-14 22:39:49
  • Python 面向对象静态方法、类方法、属性方法知识点小结

    2022-02-10 07:45:52
  • Python面向对象编程关键深度探索类与对象

    2021-12-07 03:06:20
  • Python 中enum的使用方法总结

    2022-11-10 03:13:14
  • Python简单获取自身外网IP的方法

    2023-12-26 03:44:31
  • 安装了Office2003补丁之后,access不能用,打不开了

    2011-05-12 12:19:00
  • Golang之casbin权限管理的实现

    2024-05-09 14:54:28
  • 微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法

    2024-04-19 09:47:25
  • JavaScript数组的5种迭代方法

    2024-04-22 22:17:42
  • 深度剖析使用python抓取网页正文的源码

    2022-09-29 15:53:39
  • SQL Server特殊磁带备份及恢复设计

    2009-01-21 14:39:00
  • MySQL中对于NULL值的理解和使用教程

    2024-01-27 22:51:02
  • Python实现的简单万年历例子分享

    2021-01-09 14:56:54
  • python3对拉勾数据进行可视化分析的方法详解

    2022-04-04 03:02:32
  • Python wxPython库Core组件BoxSizer用法示例

    2023-01-17 23:08:32
  • python中pandas.read_csv()函数的深入讲解

    2023-12-27 00:10:32
  • Python进程间通信用法实例

    2023-02-13 02:53:18
  • MySQL中varchar和char类型的区别

    2024-01-22 22:36:05
  • Python tkinter 列表框Listbox属性详情

    2023-09-16 14:06:26
  • asp之家 网络编程 m.aspxhome.com