| 
                        这是我自己的心得,给大家作个参考。我的目的是让开发变得简单,尽可能少地考虑实现语句,更多地把精力用于思考业务逻辑。希望我的文章对大家有所启发和帮助。
 好吧,让我们进入正题: 
先看以下例子: 
<% 
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 
                        (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |