快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

前段日子发表的文章,数据库的连接代码可以直接在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.4ico.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.4ico.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这个软件的功能,我们一步一步实现。
返回类别: 教程
上一教程: 网站设计中表单验证
下一教程: 如何使用ASP在自己的网站建立投票机制(一)

您可以阅读与"使用组件封装数据库操作(二)"相关的教程:
· 使用组件封装数据库操作(一)
· 使用组件封装ASP的数据库操作
· ASP中对数据库表的操作,可使用事务处理,并支持多事务处理
· 常用数据库操作的自定义函数
· ASP安全写入数据库操作,正常读出并显示在不同的场合
    微笑服务 优质保证 索取样品