推荐:如何实现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的控件状态和视图状态探讨基本概念控件状态-为了让控件正常工作,有时需要存储控件状态数据。例如,如果编写了一个自定义控件,其中具有显示不同信息的不同选项卡,为使该控件如预期一样工作,控件需要知道在往返过