ASP與ASP.NET的比較
介紹
在這個實踐練習中, 你將創建ASP(Active Server Pages) 頁面和ASP.NET頁面,他們分別從數據庫中取出數據并生成一個的HTML頁面.在這兩個例子中,數據訪問的概念是相同的--它們都涉及與數據庫的連接。但是收集數據和顯示數據的方式是不同的。
創建ASP頁面
1.打開Visual Studio.NET集成開發環境:點擊Start,點擊Programs,點擊Experience VS .NET Content,點擊Lab 3,點擊ASP Source。一個名為Authors.asp的空ASP頁面文件會在Visual Studio .NET IDE中打開,如圖1所示。
圖1 ASP頁面 |
2.敲入以下代碼
<%@ Language=VBScript %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <STYLE> BODY { font:arial } H1 { color:navy } </STYLE> </HEAD> <BODY> <DIV align=center> <H1>Authors</H1> <% ' ' Connecting to a database ' dim cn set cn = server.CreateObject("ADODB.Connection") cn.Open "Provider=sqloledb;" _ & "Data Source=(local);" _ & "Initial Catalog=pubs;" _ & "User ID=sa" ' Retrieving Data via the Recordset Object. dim rs set rs = server.CreateObject("ADODB.Recordset") rs.Open "select au_fname, au_lname, phone from authors order by au_lname",cn %> |
注意:
下面的代碼是由靜態HTML和服務器端腳本構成的,用一個循環把數據集(recordset)中的所有數據遍歷出來。
<TABLE border='1'> <TR> <TH>First Name</TH> <TH>Last Name</TH> <TH>Phone</TH> </TR> <% do until rs.EOF Response.Write "<TR>" Response.Write "<TD>" & rs("au_fname") & "</TD>" Response.Write "<TD>" & rs("au_lname") & "</TD>" Response.Write "<TD>" & rs("phone") & "</TD>" Response.Write "</TR>" rs.MoveNext loop %> </TABLE> <!-- Footer --> <h5>Current as of <%Response.Write now%></h5> </DIV> </BODY> </HTML> |
3.點擊File,再點擊Save Authors.asp。
4.關閉IDE。
觀看ASP頁面
1.觀看ASP頁面:點擊Start,點擊Programs,點擊Experience VS.NET Content,點擊Lab 3,再點擊ASP。頁面顯示如圖2。
圖2 ASP頁面顯示結果 |
創建ASP.NET頁面
1.打開Visual Studio.NET IDE:點擊Start,點擊Programs,點擊Experience VS.NET Content,點擊Lab 3,然后點擊ASP .NET VB Source。一個名為Authors VB.aspx的空ASP.NET頁面文件會在Visual Studio.NET IDE打開,如圖3所示。
圖3 ASP.NET頁面 |
2.點擊Visual Studio.NET窗口左下角的HTML按鈕查看頁面代碼
3.敲入以下代碼
注意:System.Data和System.Data.SqlClient名字空間(namespaces)被聲明在頁面頂端,所以這兩個名字空間中的所有類可以在下面ASP.NET頁面中可用。
<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <STYLE> BODY { font:arial } H1 { color:navy } </STYLE> </HEAD> <BODY> <DIV align=center> <H1>Authors</H1> |
注意:服務器端腳本與靜態HTML完全分離。你可以使用任何run-time語言,例如Microsoft Visual Basic?,Microsoft? Jscript?和C#。
< script language="VB" runat="server"> Sub Page_Load(Src As Object, E As EventArgs) Dim DS As DataSet Dim MyConnection As SQLConnection Dim MyCommand As SQLDataAdapter MyConnection = New SQLConnection("server=localhost;uid=sa;pwd=;database=pubs") MyCommand=New SQLDataAdapter("select au_fname as 'First Name', au_lname as 'Last Name',Phone from Authors",MyConnection) |
注意:下面代碼中的DataSet對象取代了Recordset對象,并請注意SQLDataAdapter對象中的fill方法。
DS = new DataSet() MyCommand.Fill(ds,"Authors") |
注意:下面代碼設置了DataGrid 控件的DataSource屬性。注意DataSet對象中 Table集合,跟Recordset對象不同,DataSet對象可以包含多個表.
grdAuthors.DataSource=ds.Tables("Authors").DefaultView |
注意:在下面代碼中,DataGrid控件用DataBind方法載入數據,然后DataGrid控件以HTML表形式顯示數據。
grdAuthors.DataBind() End Sub </script> |
注意:下面第一行代碼往頁面中嵌入了一個DataGrid對象。DataGrid控件的其它屬性也可以通過加入屬性/值對來設置,例如:Width="700" BackColor="#ccccff"。
<asp:DataGrid runat=server id=grdAuthors/> <!-- Footer --> <h5>Current as of <%Response.Write (Now.ToString)%></h5> </DIV> </BODY> </HTML> |
4.點擊File,再點擊Save Authors VB.aspx。
5.關閉IDE。
觀看ASP頁面
1.查看ASP.NET頁面:點擊Start,點擊Programs,點擊Experience VS .NET Content,點擊Lab 3,再點擊ASP.NET-VB。頁面顯示如圖4。
圖4 ASP.NET顯示頁面 |
結束
當你完成了查看ASP.NET頁面的工作,關閉所有窗口。