人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

轉(zhuǎn): ASP.NET高級應(yīng)用 (2)

轉(zhuǎn): ASP.NET高級應(yīng)用 (2)

更新時間:2022-06-06 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

三層結(jié)構(gòu)及其應(yīng)用

  概念及環(huán)境

  ASP.NET中的三層結(jié)果開發(fā)方法,其實其思想跟Java的一樣。Java中的三層架構(gòu)為前端的html、Jsp、Servlet,中間層為JavaBean、EJB,后面為數(shù)據(jù)庫服務(wù)器。而在ASP.NET中,前段為html、asp、aspx等,中間層為有.vb、.cs等文件編譯而成的.dll控件,后面為數(shù)據(jù)庫服務(wù)器。

  在我們的三層架構(gòu)中,我們的數(shù)據(jù)庫層通過中間層來連接以及操作,前端給中間層傳遞參數(shù),并接受中間層的參數(shù)。在我們的ASP.NET中,我們主要關(guān)注的是我們的中間層與前端的數(shù)據(jù)交互。

  我們一般統(tǒng)稱中間層為組件,組件可以用.vb編譯而成,也可以用.cs文件編譯而成。中間層一般為.dll文件。微軟的.NET技術(shù)在這個方面比他的以前的任何版本都要來的簡單,這也是它的一打好處之一。以前我們要注冊一個.dll文件,有是注冊有是重啟動,而在.net上,我們的.dll文件拿來就用,不用再考慮注冊的問題。

  在沒有Visual stutio.net之前,我們用寫成的.bat文件來把.vb和.cs文件編譯成.dll文件,在.bat文件里,我們寫入編譯的文件名稱、相關(guān)聯(lián)的名字空間、要編譯成的文件名以及對應(yīng)的命令名稱,然后運行就行了。聽起來很復(fù)雜,這也是很多初學(xué)者在編譯第一個.dll文件時所害怕的事情。但是做起來很簡單的。下面我們舉一個例子來說明.bat文件的寫法,假設(shè)我們有一個文件名為:saidy.vb的文件,我們要把它編譯成saidy.dll的文件,其中用到System、System.Data、System.Data.SQL名字空間,我們可以創(chuàng)建一個dblink.bat文件,內(nèi)容如下:

  vbc /out:..\bin\saidy.dll /t:library /r:system.dll /r:system.data.dll / r:system.data.sql.dll

  dblink.vb

  這是編譯.vb程序的命令,如果是編譯.cs文件,則命令會是不一樣,我們假定有一個saidy.cs的文件,按照上面的要求,我們編譯如下:

  cs /out:..\bin\saidy.dll /t:library /r:system.dll /r:system.data.dll / r:system.data.sql.dll
dblink.cs

  我們可以看出來,大部分是一樣的。

  當(dāng)然,如果我們有微軟公司的vs.net編程環(huán)境,則我們不用這么麻煩,我們可以象編譯vb或者vc程序一樣方便的編譯.dll文件。微軟公司的vs.net是一個集大成者,把各種語言整合起來,在這個環(huán)境下都可以寫出不同語言的程序。具體的應(yīng)用我們會在專門的章節(jié)上介紹的。

  一個基于三層架構(gòu)的例子

  我們通過具體的例子來說明三層架構(gòu)的應(yīng)用,我們建一個小項目來說明這個問題。有時為了安全性,我們通常把與數(shù)據(jù)庫的連接用一個動態(tài)連接庫文件封裝起來,這樣我們就要把寫數(shù)據(jù)庫連接的.vb或者.cs文件編譯成動態(tài)連接庫.dll文件。甚至我們把對數(shù)據(jù)庫的相關(guān)操作頁編譯成.dll文件。

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

   Dim dbl As SQLConnection

  對數(shù)據(jù)庫的操作,我們把它寫在一個方法里面,在返回相應(yīng)值:
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



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


Imports System
Imports System.Data
Imports System.Data.SQL
'創(chuàng)建名字空間
Namespace db
'創(chuàng)建一個類
Public Class dblink
'建立數(shù)據(jù)庫的連接
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)
'填充數(shù)據(jù)
sDS = New DataSet()
sComm.FillDataSet(sDS, "color")
'返回
Return sDS.Tables("color").DefaultView
End Function
End Class
End Namespace
我們再寫一個前端掉用頁面saidy.aspx,我們首先要引入我們創(chuàng)建的名字空間:

<%@ Import Namespace="db" %>

在頁面裝入的時候,我們用此方法:
Sub Page_Load(Sender As Object, E As EventArgs)
'建立一個新的對象
Dim newdb As dblink
newdb = new dblink()
'數(shù)據(jù)來源
Products.DataSource = newdb.getdata()
'數(shù)據(jù)綁定
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()
'數(shù)據(jù)來源
Products.DataSource = newdb.getdata()
'數(shù)據(jù)綁定
Products.DataBind()
End Sub
</script>
<body style="font: 10pt verdana" bgcolor="CCCCFF">
<BR><BR><BR>
<CENTER>
<h3>.NET->三層架構(gòu)!</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>

  我們看到,在這個頁面當(dāng)中,沒有出現(xiàn)與數(shù)據(jù)庫交互的語句,這樣我們就很好的把數(shù)據(jù)操作

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 沂源县| 肇东市| 西乌| 宜丰县| 杭锦旗| 淮安市| 重庆市| 延边| 东乡| 绵阳市| 斗六市| 浦北县| 濮阳县| 延寿县| 武安市| 禹州市| 城市| 武定县| 集贤县| 防城港市| 车致| 五台县| 通江县| 屯留县| 仙桃市| 永年县| 大安市| 桑植县| 香格里拉县| 平和县| 贺州市| 阿勒泰市| 麻阳| 大厂| 林芝县| 江陵县| 龙门县| 天镇县| 大庆市| 洪雅县| 扶沟县|