從ASP遷移至ASP --最初的考慮(二)_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:如何實(shí)現(xiàn)Asp與Asp.Net共享Session在.net中,Session的存儲(chǔ)機(jī)制已經(jīng)與Asp的存儲(chǔ)機(jī)制不一樣,雖然可以在同一個(gè)IIS下同時(shí)運(yùn)行asp與aspx,但是它們之間不能傳遞Session。之前大批系統(tǒng)應(yīng)用到了asp,在升級(jí)過程中,如果完全拋棄asp來
運(yùn)用和在一個(gè)單獨(dú)模塊中創(chuàng)建一個(gè)普遍性的連接相同的構(gòu)想,我們創(chuàng)建了一個(gè)Pagelet。Pagelet使開發(fā)人員可以創(chuàng)建偽控件,偽控件和對(duì)象一樣可以用來顯示屬性,方法以及事件。我們的方案是:創(chuàng)建一個(gè)顯示ConnectToDB方法的Pagelet,該方法返回一個(gè)ADOConnection對(duì)象(與ADO的語法稍有不同)。我們用下面的代碼創(chuàng)建Pagelet,將它存為connect.aspc(擴(kuò)展名表明它是一個(gè)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>
你會(huì)注意到我們導(dǎo)入了兩個(gè)Namespaces,即System.Data和System.Data.ADO。為了使用ADO Managed Provider這些Namespaces是必須的。許多人就此問了我許多問題,因?yàn)槟壳岸鄶?shù)示例都使用基于Microsoft SQL Server 2000數(shù)據(jù)庫的SQL Managed Provider。對(duì)于非SQL Server 數(shù)據(jù)庫,ASP 可以使用ADO Managed Provider,這和目前你在程序中使用ADO的方式大致相同。導(dǎo)入Namespaces和在VB程序中創(chuàng)建參考(Reference)有異曲同工之妙。
Pagelet的運(yùn)用使我可以維護(hù)當(dāng)前的站點(diǎn)計(jì)劃,一旦在模塊中創(chuàng)建了連接,我們就可在任何需要的地方重用模塊。這意味著我們需要用Pagelet的一個(gè)實(shí)例來替代Include文件指令,然后當(dāng)我們需要數(shù)據(jù)庫連接時(shí)調(diào)用ConnectToDB方法。在需要使用Pagelet的頁面中,我們首先必須使用ASP 指令將之與該頁面注冊(cè)(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" %>
放置我們剛注冊(cè)的Pagelet的方法與ASP 服務(wù)器控件類似:
< [TagPrefix]:[TagName] id=myPagelet runat=server />
比如:
< seven:Connect id=Connect runat=server />
在ADO 中,記錄集(Recordset)的概念被DataSets和DataViews的組合所取代。一會(huì)兒我們將討論這兩個(gè)概念。首先讓我們看看在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>
數(shù)據(jù)訪問的核心,ANSI-SQL語句在轉(zhuǎn)換后沒有什么
分享:ASP.NET2.0的控件狀態(tài)和視圖狀態(tài)探討基本概念 控件狀態(tài)-為了讓控件正常工作,有時(shí)需要存儲(chǔ)控件狀態(tài)數(shù)據(jù)。例如,如果編寫了一個(gè)自定義控件,其中具有顯示不同信息的不同選項(xiàng)卡,為使該控件如預(yù)期一樣工作,控件需要知道在往返過
相關(guān)ASP教程:
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無組件分頁實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說明:
ASP教程-從ASP遷移至ASP --最初的考慮(二)
。