asp快速开发方法之数据操作实例代码第1/3页
程序员文章站
2023-08-24 12:00:43
这是我自己的心得,给大家作个参考。 我的目的是让开发变得简单,尽可能少地考虑实现语句,更多地把精力用于思考业务逻辑。希望我的文章对大家有所启发和帮助。 如果你对asp不熟悉...
这是我自己的心得,给大家作个参考。
我的目的是让开发变得简单,尽可能少地考虑实现语句,更多地把精力用于思考业务逻辑。希望我的文章对大家有所启发和帮助。
如果你对asp不熟悉,可以先看以下教程:
1、http://布鲁斯狼的asp编程入门进阶
2、www.w3schools.com的asp教程(英文\中文),查看更多
好吧,让我们进入正题:
先看以下例子:
<%
db_path = "database/cnbruce.mdb"
set conn= server.createobject("adodb.connection")
connstr = "provider=microsoft.jet.oledb.4.0;data source="&server.mappath(db_path)
conn.open connstr
set rs = server.createobject ("adodb.recordset")
sql = "select * from cnarticle"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write ("暂时还没有文章")
else
do until rs.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
end if
rs.close
set rs = nothing
conn.close
set conn=nothing
%>
嗯,这是一个典型的读取数据并显示的例子,参见:http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=448
嗯,确实简单。从上至下,很容易明白。但是当你对多个表进行读插删改的时候,当你的代码里有很多html\js混杂的时候,你会有疑问:为什么有这么多东西要重复呢?
所以一般我们把一些简单的操作独立出来,写成类或者函数放进包含文件(include)。
那么以上的操作我们可以使用两个文件来实现:
conn.asp
<%
db_path = "database/cnbruce.mdb"
set conn= server.createobject("adodb.connection")
connstr = "provider=microsoft.jet.oledb.4.0;data source="&server.mappath(db_path)
conn.open connstr
%>
showit.asp
<!--#include file="conn.asp" -->
<%
set rs = server.createobject ("adodb.recordset")
sql = "select * from cnarticle"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write ("暂时还没有文章")
else
do until rs.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
end if
rs.close
set rs = nothing
conn.close
set conn=nothing
%>
参考:http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=448
现在相对简单多了,如果有多个操作页面我们只要导入连接文件就可以了,不过还是不够简洁,哪里不简洁?
一直在创建server,一直在写close,这样很容易出错,并且看起来与内容无关的太多。
那我再改进下:
把conn.asp文件改成:
<%
dim conn
dim rs
sub closedatabase
conn.close
set conn = nothing
end sub
sub opendatabase
dim strserver,struid,strsapwd,strdbname
strserver="192.168.1.1" '数据库服务器名
struid="sa" '您的登录帐号
strsapwd="" '您的登录密码
strdbname="cnbruce.mdb" '您的数据库名称
set conn = server.createobject("adodb.connection")
'用于连接access
conn.connectionstring = "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath(strdbname)
'用于连接mssql
'conn.connectionstring = "driver={sql server};driver={sql server};server="&strserver&";uid="&struid&";pwd="&strsapwd&";database="&strdbname
set rs=server.createobject("adodb.recordset")
conn.open
if err then
err.clear
set conn = nothing
gbl_chk_tempstr = gbl_chk_tempstr & "数据库连接错误!"
response.write gbl_chk_tempstr
response.end
end if
end sub
%>
我的目的是让开发变得简单,尽可能少地考虑实现语句,更多地把精力用于思考业务逻辑。希望我的文章对大家有所启发和帮助。
如果你对asp不熟悉,可以先看以下教程:
1、http://布鲁斯狼的asp编程入门进阶
2、www.w3schools.com的asp教程(英文\中文),查看更多
好吧,让我们进入正题:
先看以下例子:
<%
db_path = "database/cnbruce.mdb"
set conn= server.createobject("adodb.connection")
connstr = "provider=microsoft.jet.oledb.4.0;data source="&server.mappath(db_path)
conn.open connstr
set rs = server.createobject ("adodb.recordset")
sql = "select * from cnarticle"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write ("暂时还没有文章")
else
do until rs.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
end if
rs.close
set rs = nothing
conn.close
set conn=nothing
%>
嗯,这是一个典型的读取数据并显示的例子,参见:http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=448
嗯,确实简单。从上至下,很容易明白。但是当你对多个表进行读插删改的时候,当你的代码里有很多html\js混杂的时候,你会有疑问:为什么有这么多东西要重复呢?
所以一般我们把一些简单的操作独立出来,写成类或者函数放进包含文件(include)。
那么以上的操作我们可以使用两个文件来实现:
conn.asp
<%
db_path = "database/cnbruce.mdb"
set conn= server.createobject("adodb.connection")
connstr = "provider=microsoft.jet.oledb.4.0;data source="&server.mappath(db_path)
conn.open connstr
%>
showit.asp
<!--#include file="conn.asp" -->
<%
set rs = server.createobject ("adodb.recordset")
sql = "select * from cnarticle"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write ("暂时还没有文章")
else
do until rs.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
end if
rs.close
set rs = nothing
conn.close
set conn=nothing
%>
参考:http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=448
现在相对简单多了,如果有多个操作页面我们只要导入连接文件就可以了,不过还是不够简洁,哪里不简洁?
一直在创建server,一直在写close,这样很容易出错,并且看起来与内容无关的太多。
那我再改进下:
把conn.asp文件改成:
复制代码 代码如下:
<%
dim conn
dim rs
sub closedatabase
conn.close
set conn = nothing
end sub
sub opendatabase
dim strserver,struid,strsapwd,strdbname
strserver="192.168.1.1" '数据库服务器名
struid="sa" '您的登录帐号
strsapwd="" '您的登录密码
strdbname="cnbruce.mdb" '您的数据库名称
set conn = server.createobject("adodb.connection")
'用于连接access
conn.connectionstring = "provider=microsoft.jet.oledb.4.0; data source=" & server.mappath(strdbname)
'用于连接mssql
'conn.connectionstring = "driver={sql server};driver={sql server};server="&strserver&";uid="&struid&";pwd="&strsapwd&";database="&strdbname
set rs=server.createobject("adodb.recordset")
conn.open
if err then
err.clear
set conn = nothing
gbl_chk_tempstr = gbl_chk_tempstr & "数据库连接错误!"
response.write gbl_chk_tempstr
response.end
end if
end sub
%>
1
上一篇: asp下去除数组中重复项的方法