一個基於三層架構的例子

一個基於三層架構的例子

  我們通過具體的例子來說明三層架構的應用,我們建一個小項目來說明這個問題。有時爲了安全性,我們通常把與數據庫的連接用一個動態連接庫文件封裝起來,這樣我們就要把寫數據庫連接的.vb或者.cs文件編譯成動態連接庫.dll文件。甚至我們把對數據庫的相關操作頁編譯成.dll文件。

  下面是我們的與數據庫連接以及操作的文件dblink.vb的主要部分,對數據庫的連接:

   Dim dbl As SQLConnection

  對數據庫的操作,我們把它寫在一個方法裏面,在返回相應值:
Function getdata() as DataView
Dim sComm as SQLDataSetCommand
Dim sDS as DataSet
Dim sStr as String
dbl = New SQLConnection("server=localhost;uid=sa;password=;database=howff")
sStr = "select * from color"
sComm = new SQLDataSetCommand(sStr,dbl)
sDS = new DataSet()
sComm.FillDataSet(sDS,"color")
Return sDS.Table["color"].DefaultView
End Function


  我們第六個語句就用到上面的與數據庫的連接變量,我們這個函數的功能是從表"color"中選出所有的元素,並返回表結構的形式。完整的代碼如下:

Imports System
Imports System.Data
Imports System.Data.SQL
'創建名字空間
Namespace db
'創建一個類
Public Class dblink
'建立數據庫的連接
Dim dbl As SQLConnection
'方法
Public Function getdata() As DataView
Dim sComm As SQLDataSetCommand
Dim sDS As DataSet
dbl = New SQLConnection("server=localhost;uid=sa;password=;database=howff")
Dim sStr As String
sStr = "select * from color"
sComm = New SQLDataSetCommand(sStr, dbl)
'填充數據
sDS = New DataSet()
sComm.FillDataSet(sDS, "color")
'返回
Return sDS.Tables("color").DefaultView
End Function
End Class
End Namespace
我們再寫一個前端掉用頁面saidy.aspx,我們首先要引入我們創建的名字空間:

<%@ Import Namespace="db" %>

在頁面裝入的時候,我們用此方法:
Sub Page_Load(Sender As Object, E As EventArgs)
'建立一個新的對象
Dim newdb As dblink
newdb = new dblink()
'數據來源
Products.DataSource = newdb.getdata()
'數據綁定
Products.DataBind()
End Sub
下面看看我們完整的代碼(advanceapp/dblink.aspx):
<%@ Import Namespace="db" %>
<html>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
'建立一個新的對象
Dim newdb As dblink
newdb = new dblink()
'數據來源
Products.DataSource = newdb.getdata()
'數據綁定
Products.DataBind()
End Sub
</script>
<body style="font: 10pt verdana" bgcolor="CCCCFF">
<BR><BR><BR>
<CENTER>
<h3>.NET->三層架構!</h3>
</CENTER>
<BR><BR>
<CENTER>
<ASP:DataList id="Products" ShowHeader=false ShowFooter=false RepeatColumns="2" RepeatDirection="horizontal" BorderWidth=0 runat="server">
<template name="itemtemplate">
<table>
<tr>
<td width="150" style="text-align:center; font-size:8pt; vertical-align:top;
height:50">
<p>
<%# DataBinder.Eval(Container.DataItem, "id") %> <br>
<%# DataBinder.Eval(Container.DataItem, "name", "{0:C}").ToString() %>
</td>
</tr>
</table>
</template>
</ASP:DataList>
</CENTER>
</body>
</html> 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章