從ASP遷移至ASP --最初的考慮(二)_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:如何實現Asp與Asp.Net共享Session在.net中,Session的存儲機制已經與Asp的存儲機制不一樣,雖然可以在同一個IIS下同時運行asp與aspx,但是它們之間不能傳遞Session。之前大批系統應用到了asp,在升級過程中,如果完全拋棄asp來
運用和在一個單獨模塊中創建一個普遍性的連接相同的構想,我們創建了一個Pagelet。Pagelet使開發人員可以創建偽控件,偽控件和對象一樣可以用來顯示屬性,方法以及事件。我們的方案是:創建一個顯示ConnectToDB方法的Pagelet,該方法返回一個ADOConnection對象(與ADO的語法稍有不同)。我們用下面的代碼創建Pagelet,將它存為connect.aspc(擴展名表明它是一個Pagelet)< %@ Import Namespace="System.Data" %>
< %@ Import Namespace="System.Data.ADO" %>
< script language="VB" runat="server">
Public Function ConnectToDB() As ADOConnection
ConnectToDB = New ADOConnection("DSN=evilleDSN")
End Function
< /script>
你會注意到我們導入了兩個Namespaces,即System.Data和System.Data.ADO。為了使用ADO Managed Provider這些Namespaces是必須的。許多人就此問了我許多問題,因為目前多數示例都使用基于Microsoft SQL Server 2000數據庫的SQL Managed Provider。對于非SQL Server 數據庫,ASP 可以使用ADO Managed Provider,這和目前你在程序中使用ADO的方式大致相同。導入Namespaces和在VB程序中創建參考(Reference)有異曲同工之妙。
Pagelet的運用使我可以維護當前的站點計劃,一旦在模塊中創建了連接,我們就可在任何需要的地方重用模塊。這意味著我們需要用Pagelet的一個實例來替代Include文件指令,然后當我們需要數據庫連接時調用ConnectToDB方法。在需要使用Pagelet的頁面中,我們首先必須使用ASP 指令將之與該頁面注冊(register)。在指令中,我們定義TagPrefix,TagName,以及Source(src)。與ASP中的include文件類似,在我們放置Pagelet的地方要用到TagPrefix和TagName。
< %@ Register TagPrefix="seven" TagName="Connect"
src=http://www.alixixi.com/Dev/Web/ASP/asp_1/2007/"_includes/connect.aspc" %>
放置我們剛注冊的Pagelet的方法與ASP 服務器控件類似:
< [TagPrefix]:[TagName] id=myPagelet runat=server />
比如:
< seven:Connect id=Connect runat=server />
在ADO 中,記錄集(Recordset)的概念被DataSets和DataViews的組合所取代。一會兒我們將討論這兩個概念。首先讓我們看看在default.asp頁面遷移至default.aspx(ASP 頁面的后綴)后代碼都有了哪些改變。先看default.asp:
< !-- #include file="_includes/connect.inc" -->
< %
Dim cnEville_DB, rsUpcoming, strSqlUpcoming
Set rsUpcoming = Server.CreateObject("ADODB.Recordset")
strSqlUpcoming = " SELECT TOP 2 " & _
"Classes.Title, Sessions.Session_ID, " & _
"Sessions.Special, Classes.Description " & _
"FROM Classes INNER JOIN Sessions ON " & _
"Classes.Class_ID = Sessions.ClassID " & _
"WHERE (((Sessions.Date)>Date())) " & _
"ORDER BY Sessions.Date"
rsUpcoming.Open strSqlUpcoming,cnEville_DB
%>
在ASP 中成了default.aspx:
< %@ Import Namespace="System.Data" %>
< %@ Import Namespace="System.Data.ADO" %>
< %@ Register TagPrefix="seven" TagName="Connect" &_
src=http://www.alixixi.com/Dev/Web/ASP/asp_1/2007/"_includes/connect.aspc" %>
< script language="vb" runat=server>
Sub Page_Load(Source As Object, E As EventArgs)
Dim dscUpcoming As ADODataSetCommand
Dim dsUpcoming As New DataSet
Dim strSQL As String
strSQL = "SELECT TOP 2 Classes.Title," & _
"Sessions.Session_ID, Classes.Description " & _
"FROM Classes INNER JOIN Sessions ON " & _
"Classes.Class_ID = Sessions.ClassID " & _
"WHERE (((Sessions.Date)>Date())) " & _
"ORDER BY Sessions.Date"
dscUpcoming = New ADODataSetCommand(strSQL, Connect.ConnectToDB())
dscUpcoming.FillDataSet(dsUpcoming, "Upcoming")
End Sub
< /script>
數據訪問的核心,ANSI-SQL語句在轉換后沒有什么
分享:ASP.NET2.0的控件狀態和視圖狀態探討基本概念 控件狀態-為了讓控件正常工作,有時需要存儲控件狀態數據。例如,如果編寫了一個自定義控件,其中具有顯示不同信息的不同選項卡,為使該控件如預期一樣工作,控件需要知道在往返過
相關ASP教程:
- 相關鏈接:
- 教程說明:
ASP教程-從ASP遷移至ASP --最初的考慮(二)。