设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> ASP技术 >> ASP应用 >> 正文
最新信息
·asp无限级分类加js收缩伸展…
·ASP读取EXCEL数据
·ASP编程操作Excel
·ASP编写了一个EXCEL上传程…
·ASP如何读取EXCEL工作表名…
·ASPJpeg和ASPUpload组件的…
·用ASP和SQL语句动态的创建…
·asp生成excel报表
·四大 FCKeditor 实战应用技…
·FCKeditor 2.0 的设置.修改…
资料搜索
热点信息
·asp生成excel报表
·Javascript+ASP制作树形菜…
·AspUpload组件的UploadedF…
·ASPJpeg和ASPUpload组件的…
·FckEditor中文配置手册详细…
·ASPUpload组件介绍
·金光ASP柱形图程序
·asp生成不重复的随机数字
·ASP读取EXCEL数据
·0-29内取15个不同的随机数…
推荐信息
·用ASP生成二维饼图
·一个取图片尺寸的类,支持…
·随即文件名
·ASP 随机图片
·本地图片,音乐等ASP防盗代…
·ASPJpeg和ASPUpload组件的…
·如何实现网上考试?
·用ASP打开远端MDB文件的方…
·ASP编写完整的一个IP所在地…
·用ASP实现远程批量文件改名


Google
 
使用组件封装数据库操作(二)
〖编辑:Cloudy | 浏览:人次〗

前段日子发表的文章,数据库的连接代码可以直接在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()方法

<HEAD>

 

<!- 测试页 ->

<!- 功能:测试组件 ->

<!- 作者:龙卷风.NET ->

 

<%

    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")   

%>

<TITLE>

   数据组件测试页

</TITLE>

<H1><CENTER>欢迎使用数据组件(www.knowsky.com)</CENTER></H1>

<%

       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 "<CENTER><TABLE BORDER=1 cellspacing=0 cellpadding=2>"

         Response.Write "<tr BGCOLOR=silver align=center>"

         Response.Write "<td>EmployeeID</TD>"

         Response.Write "<td>LastName</td>"

           Response.Write "<td>FirstName</td>"

               Response.Write "<td>Title</a></td>"

           Response.Write "<td>TitleOfCourtesy</a></td>"
           Response.Write "<td>BirthDate</td>"

           Response.Write "<td>HireDate</td>"

           Response.Write "<td>Address</td>"

           Response.Write "<td>City</td>"

         Response.Write "</tr>"

 

               Rs.AbsolutePage = Page

               For iPage = 1 To Rs.PageSize

                     Response.Write "<TR align=right>"

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

                          Response.Write "<td>"&Rs.fields.item(i)&"</td>"

                      next

                     Response.Write "</TR>"

                      Rs.MoveNext

                      If Rs.EOF Then Exit For

                next

      Response.Write "</TABLE></CENTER>"

%>

 

<Form name="myform" method="get">

<%If Page <> 1 Then%>

     <A HREF="<%=Myself%>?Page=1">第一页</A>

     <A HREF="<%=Myself%>?Page=<%=(Page-1)%>">上一页</A>

<%End If%>

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

  <A HREF="<%=Myself%>?Page=<%=(Page+1)%>">下一页</A>

  <A HREF="<%=Myself%>?Page=<%=Rs.PageCount%>">最后的一页</A>

<%End If%>

页次:<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>

</Form>

 

<%

Rs.close

%>

 

 

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

这个页面相对简单一些

<HEAD>

 

<!- 测试页 ->

<!- 功能:测试组件 ->

<!- 作者:龙卷风.NET ->

 

<%

    Dim DataQuery

       Dim strID

       Dim strResult

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

%>

 

<TITLE>
数据组件测试页
</TITLE>

<H1><CENTER>欢迎使用数据组件(www.knowsky.com)</CENTER></H1>

<%

    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

%>

 

<FORM NAME="MyForm">

<INPUT TYPE=TEXTBOX NAME="EmpID" SIZE=40><P>

<INPUT LANGUAGE="VBScript"

       TYPE="BUTTON"

       VALUE="Search"

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

               + MyForm.EmpID.Value">

 

</FORM>
</HEAD>

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

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

真是……

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

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


录入时间:2007-02-26 13:46:47 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号