asp快速开发方法之数据操作实例代码第13页

2018-09-06 12:47

阅读:403

  这是我自己的心得,给大家作个参考。
我的目的是让开发变得简单,尽可能少地考虑实现语句,更多地把精力用于思考业务逻辑。希望我的文章对大家有所启发和帮助。
如果你对ASP不熟悉,可以先看以下教程:
1、鲁斯狼的ASP编程入门进阶
2、的ASP教程(英文\中文),查看更多

好吧,让我们进入正题:
先看以下例子:
<%
db_path=database/cnbruce.mdb
connstr=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&Server.MapPath(db_path)
conn.Openconnstr
Setrs=Server.CreateObject(ADODB.Recordset)
sql=Select*fromcnarticle
rs.Opensql,conn,1,1
ifrs.EOFandrs.BOFthen
response.write(暂时还没有文章)
else
DoUntilrs.EOF
response.write(文章标题是:&rs(cn_title))
response.write(<br>文章作者是:&rs(cn_author))
response.write(<br>文章加入时间是:&rs(cn_time))
response.write(<br>文章内容是:&rs(cn_content))
response.write(<hr>)
rs.MoveNext
Loop
endif
rs.close
Setrs=Nothing
conn.close
setconn=Nothing
%>
嗯,这是一个典型的读取数据并显示的例子,参见:
嗯,确实简单。从上至下,很容易明白。但是当你对多个表进行读插删改的时候,当你的代码里有很多HTML\js混杂的时候,你会有疑问:为什么有这么多东西要重复呢?
所以一般我们把一些简单的操作独立出来,写成类或者函数放进包含文件(include)。

那么以上的操作我们可以使用两个文件来实现:
conn.asp
<%
db_path=database/cnbruce.mdb
Setconn=Server.CreateObject(ADODB.Connection)
connstr=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&Server.MapPath(db_path)
conn.Openconnstr
%>
showit.asp
<!--#includefile=conn.asp-->
<%
Setrs=Server.CreateObject(ADODB.Recordset)
sql=Select*fromcnarticle
rs.Opensql,conn,1,1
ifrs.EOFandrs.BOFthen
response.write(暂时还没有文章)
else
DoUntilrs.EOF
response.write(文章标题是:&rs(cn_title))
response.write(<br>文章作者是:&rs(cn_author))
response.write(<br>文章加入时间是:&rs(cn_time))
response.write(<br>文章内容是:&rs(cn_content))
response.write(<hr>)
rs.MoveNext
Loop
endif
rs.close
Setrs=Nothing
conn.close
setconn=Nothing
%>
参考:

现在相对简单多了,如果有多个操作页面我们只要导入连接文件就可以了,不过还是不够简洁,哪里不简洁?
一直在创建server,一直在写close,这样很容易出错,并且看起来与内容无关的太多。

那我再改进下:
把conn.asp文件改成:
复制代码 代码如下:
<%
DimConn
DimRs
SubCloseDatabase
Conn.close
SetConn=Nothing
EndSub
SubOpenDatabase
DimStrServer,StrUid,StrSaPwd,StrDbName
StrServer=192.168.1.1数据库服务器名
StrUid=sa您的登录帐号
StrSaPwd=您的登录密码
StrDbName=cnbruce.mdb您的数据库名称
用于连接ACCESS
Conn.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&Server.MapPath(StrDbName)
用于连接MSSQL
Conn.ConnectionString=Driver={sqlserver};driver={SQLserver};server=&StrServer&;uid=&StrUid&;pwd=&StrSaPwd&;database=&StrDbName
setrs=server.CreateObject(ADODB.RecordSet)
conn.open
ifErrThen
err.Clear
SetConn=Nothing
GBL_CHK_TempStr=GBL_CHK_TempStr&数据库连接错误!
Response.WriteGBL_CHK_TempStr
Response.End
EndIf
EndSub
%>

123下一页阅读全文


评论


亲,登录后才可以留言!