加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP快速开发方法之数据操作 - ASP教程

发布时间:2016-09-03 20:58:33 所属栏目: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
嗯,确实简单。从上至下,很容易明白。但是当你对多个表进行读插删改的时候,当你的代码里有很多HTMLjs混杂的时候,你会有疑问:为什么有这么多东西要重复呢?
所以一般我们把一些简单的操作独立出来,写成类或者函数放进包含文件(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
%>

现在我们的showit.asp可以这样写:

showit.asp
<!--#include file="conn.asp" -->
<%
sql = "Select * from cnarticle"
opendatabase
rs.Open sql,conn,1,1
If not Rs.eof then
   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
else
   response.write ("暂时还没有文章")
end if
Closedatabase
%>

嗯,我们又少写了一些东西,这样是最简单的吗?当然不是!还可以更简单。 使用GetRows把查询出来的数据传给一个变量,使用ubound方法取得数据记录条数。
不明白?没关系,让我们继续往下看:

再建个文件:sql.asp

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读