您的位置:首页技术开发ASP技巧 → 使用组件封装数据库操作二

使用组件封装数据库操作二

时间:2004/11/7 4:12:00来源:本站整理作者:蓝点我要评论(0)

前段日子发表的文章,数据库的连接代码可以直接在ASP文件中显示出来。这次又进行了一次封装。


打开vb,新建Activex控件,工程名称为WebDb,类模块名称为GetInfomation


引用”Microsoft Activex Data Object 2.6 Library ”


Private Conn As ADODB.Connection


Private Rs As ADODB.Recordset



‘作用:判断数据库是否正确连结


'自己可以更改连接串


Public Function GetConn()


Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=yang"


If Err.Number <> 0 Then


    GetConn = False


Else


    GetConn = True


End If


End Function



‘根据输入的雇员ID,得到雇员的名称


Public Function GetEmployeeName(strEmployeeID As Integer) As String


   


    Dim strSql As String


    Set rs = New ADODB.Recordset


    strSql = "select LastName+firstname from employees where EmployeeID=" & strEmployeeID


   


    rs.Open strSql, Conn, adOpenStatic, adLockOptimistic


   


    If rs.EOF Then


        GetEmployeeName = ""


    Else


        GetEmployeeName = rs.Fields(0)


    End If


   


    rs.Close


End Function


‘返回所有的雇员列表


Public Function GetEmployeeList() As ADODB.Recordset


 


    Dim strSql As String


    Set rs = New ADODB.Recordset


    strSql = "select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,BirthDate,HireDate,Address,City from employees"


    rs.CursorLocation = adUseClient


    rs.Open strSql, Conn, adOpenStatic


   


    Set GetEmployeeList = rs


    'rs.Close


End Function


 


我们进行测试


新建ASP页面,”TestWebDb1.asp”。主要用来测试GetEmployeeList()方法



 



组件 ->



 


<%


    Dim strTopic


    Dim strTitle


    Dim strContents


    Dim DataQuery


       Dim Rs


       Dim Myself


       Myself=Request.ServerVariables("script_name")


    Set DataQuery=Server.CreateObject("WebDb.GetInfomation")


       Set Rs=Server.CreateObject("adodb.recordset")   


%>


</P><BR> <P>   数据<a href="http://www.baidu.com/baidu?tn=sayyes&word=asp+组件" target="_blank" rel="nofollow"><span class="unnamed8"><font color="#0000FF">组件</font></span></a>测试页</P><BR> <P>


欢迎使用数据组件(www.knowsky.com)
>


<%


       Dim Flag


       Flag=DataQuery.GetConn()


       If Flag=false then


              ResPonse.Write "数据库没有连结,请检查"


              ResPonse.End


       End if


 


       Set Rs=DataQuery.GetEmployeeList()


       if rs.eof then


              Response.write "没有数据,请查询"


              Response.end


       end if


 


    Rs.PageSize =3


    Page= CLng(Request.QueryString ("Page"))


 


    If Page < 1 Then Page = 1


    If Page > Rs.PageCount Then Page = Rs.PageCount


 


         Response.Write "

"


         Response.Write "

"


         Response.Write "

"


         Response.Write "

"


           Response.Write "

"


               Response.Write "

"


           Response.Write "

"


           Response.Write "

"


           Response.Write "

"


           Response.Write "

"


           Response.Write "

"


         Response.Write "

"


 


               Rs.AbsolutePage = Page


               For iPage = 1 To Rs.PageSize


                     Response.Write "

"


                   for i=0 to Rs.fields.count-1


                          Response.Write "

"


                      next


                     Response.Write "

"


                      Rs.MoveNext


                      If Rs.EOF Then Exit For


                next


      Response.Write "

EmployeeID LastName FirstName Title TitleOfCourtesy BirthDate HireDate Address City
"&Rs.fields.item(i)&"
"


%>


 



<%If Page <> 1 Then%>


     第一页


     上一页


<%End If%>


  <%If Page <> Rs.PageCount Then%>


  下一页


  最后的一页


<%End If%>


页次:<%=Page%>/<%=Rs.PageCount%>



 


<%


Rs.close


%>


 


 


新建ASP页面,”TestWebDb2.asp”。主要用来测试GetEmployeeName()方法


这个页面相对简单一些



 



组件 ->



 


<%


    Dim DataQuery


       Dim strID


       Dim strResult


    Set DataQuery=Server.CreateObject("WebDb.GetInfomation")


%>


 


<BR>数据<a href="http://www.baidu.com/baidu?tn=sayyes&word=asp+组件" target="_blank" rel="nofollow"><span class="unnamed8"><font color="#0000FF">组件</font></span></a>测试页<BR>


欢迎使用数据组件(www.knowsky.com)
>


<%


    If Len(Request.QueryString("ID")) > 0 Then


        strID = Request.QueryString("ID")


 


              Dim Flag


              Flag=DataQuery.GetConn()


              If Flag=false then


                     ResPonse.Write "数据库没有连结,请检查"


                     ResPonse.End


              End if


             


              strResult=DataQuery.GetEmployeeName(cint(strID))


              if strResult="" then


                     Response.Write "对不起,没有这个编号,请查询"


                     Response.End


              else


                     ResPonse.Write strResult


              end if


       End If


%>


 





       TYPE="BUTTON"


       VALUE="Search"


       ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _


               + MyForm.EmpID.Value">


 




一些想法:数据库连结如果放到组件里,如果要修改数据库连结,则要重新编译组件,可能会由此引发一些问题(但是推荐这种,毕竟数据库名和服务器名不会经常改)


如果数据库连结放到ASP页面,可以通过属性传值到组件中,但是安全性会降低。


真是……


好了,这篇文章结束了,希望对大家有帮助


今后的话题便是如何实现AspToDll这个软件的功能,我们一步一步实现。


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案