网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.WINDOWS 2000搭載ASP3.0和IIS5.0.
.ASP中FSO对象对IIS WEB服务器数据.
.谈谈如何在不支持数据库的asp主页.
.用ASP和WML来实现数据库查询.
.构建你的网站新闻自动发布系统之.
.使用ASP开发连接数据库时的性能问.
.关于ACCESS 2K与ASP的几点想法.
.如何从数据库得到一个列表表单.
.ASP中遍历和操作Application对象.
.如何用ASP编写网站统计系统二.
.透过ASP修改NT使用者的密码.
.如何使用asp创建dsn?.
.asp中对ip进行过滤限制函数.
.Microsoft SQL Server 7.0数据库.
.个人主页的数据库解决方案ASP.
.用ASP打开远端MDB文件.
.ASP+FSO+框架实现ASP生成htm并分.
.构建你的网站新闻自动发布系统之.
.ASP如何使用MYSQL数据库.
.运用asp结合vbscript模拟股票滚屏.

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

发表日期:2004-9-16


前段日子发表的文章,数据库的连接代码可以直接在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.gaoqian.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.gaoqian.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这个软件的功能,我们一步一步实现。

上一篇:使用组件封装数据库操作(一) 人气:11823
下一篇:如何在pb中创建COM组件,并在asp中调用并返回结果集? 人气:11543
浏览全部ASP组件的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐