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

2018-09-06 11:10

阅读:440

  一、新手常犯的错误
在论坛看到很多帖子代码中都有一个共同的基本错误,字段类型错误。
程序和数据库是紧紧相连的,数据库字段文本型或时间型的都使用单引号
比如下面这段修改语句:
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 数据库连接
通常数据库连接有两种方式,新手基本不知道用哪一种方式,或者在什么情况下用哪一种,又或者不知道两者的原理
①直接连接数据库文件


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)&>超级连接</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)& /> (错误写法)
12下一页阅读全文


评论


亲,登录后才可以留言!