程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 如何用ASP.NET創建你的第一個網頁

如何用ASP.NET創建你的第一個網頁

編輯:.NET實例教程

如果你是一個經驗豐富的ASP/ADO開發員但又沒有嘗試過.NET,那麼最好現在就開始試一試。為了讓你體會到.NET,我們將把微軟Access數據庫(你也可以SQL Server或者Oracle數據庫替代)連接到互聯網並檢索和顯示某些數據。這個例子即需要Information Internet Services(IIS)也需要.NET框架。你可以在這兒下載.NET框架。如果你想試用免費的APS.Net開發環境,那麼可以從Web Matrix下載它。

對服務器控件的介紹 

動態服務器頁面(Active Server Page,ASP)是微軟第一個用於連接數據庫和Web的Web技術。ASP.NET完全是其傳統語言(即ASP)的重寫。你可以同時使用這兩者,這是因為兩者文件的擴展名相區別(.Net頁使用的是.aspx擴展名,而ASP使用.ASP擴展名)。

你在ASP.NET中寫的大多數代碼將在Web服務器上運行,但返回到客戶的僅僅是Html。幸好,.Net提供了許多與標准Html控件相似的新控件,如下拉式列表和文本框。表A列出了最常用的服務器(server)控件。

表 A

常見server控件
控件  功能
<ASP:Button id="button1" Text="Press" runat="server" onClick="submit"/> 在頁面上創建一個標准按鈕
<ASP:Calendar runat="server" />  創建日歷(calendar)
<ASP:DropList id="list1" runat="server">  創建一個下拉式列表
<ASP:ListBox id="listbox" rows="4" runat="server">  創建基本列表框
<ASP:TextBox id="txtbox" runat="server" />  創建標准文本框

.Net服務器控件有一個優點,即它是創建在Web服務器上(而不是像Html那樣在頁面中創建控件)。因此,它們可以在發送到客戶之前進行處理。例如,你既可以在頁中也可以在服務器端進行內容驗證。這也就意味著你可以在頁中驗證內容,然後在服務器端重新進行驗證。
在大多數情況下,你可以通過簡單的添加組件的方法來創建一個.Net控件:
runat="server"

與之對應的Html元素代碼如下:
<ASP:control_name id="controlID" runat="server" />

有些開發工具的用法甚至更簡單。例如,Visual Studio .Net可以讓你通過拖放Web頁上的控件來創建服務器控件。

除了這些服務器端的標准Html控件,ASP.Net還提供了一套驗證控件(validation controls):

RequiredFIEldValidation控件請求一個數值。
CompareValidator控件比較兩個控件中的數值,如當用戶被要求兩次輸入電子郵件地址時,用來驗證兩次輸入是否相同。
RangeValidator控件用來判斷條目值是否在一個值域之內。
RegularExpressionValidator控件用正則表達式來驗證控件輸入。
CustomValidator控件用來讓你輸入驗證碼。
Validation Summary用來顯示一個頁面所用到的所有正確的驗證的清單。


使用ADO.Net 

你或許熟悉ADO,不過ADO.Net卻是一種全新的語言。但是沒有關系,這兩者之間有足夠多的相似之處,學會如何使用新的對象並不是困難的事。連接到數據庫一共有三個步驟:

1. 導入一個.Net名字空間來建立連接。
2.創建一個ADO.Net DataReader對象來獲取數據。
3.創建一個ADO.Net Repeater對象來顯示數據。

對.Net來說,名字空間是一個新的概念,所以在ADO中沒有和它對應的東西。在ADO中,連接是通過提供字符串和一個Connection或者Command對象來建立起來的。DataReader對應於ADO的Recordset;而Reperter是一個server控件,它用來在一個模板的基礎上顯示數據。

創建ADO.Net連接

為了從數據庫中檢索數據,你需要ADO.Net。如果你熟悉IIS和Web文件層次,那麼你可能不需任何幫助就可以建立一個例子。你也可以按照我們的演示過程去做,先把Northwind(一個Access數據庫例子)拷貝到你的本地硬盤中。我們的例子在一個名為nettest的Web文件夾下。拷貝粘貼(或者輸入)下面的代碼到一個文本編輯器中並把它保存為nettest.ASPx。

現在,導入一個.Net名字空間,這樣你就可以使用OLEDB數據庫了:
<%@ Import Namespace="System.Data.OleDb" %>


PageLoad事件將執行連接到Northwind數據庫的代碼,Server.mappath將返回包含該數據庫的物理路徑,如代碼清單A所示。

連接字符串

如果你想連接到SQL Server(用一個OLEDB連接),你可以使用下面的語句:
"Provider=sqloledb;Data Source=Martin;Initial Catalog=NorthWind;Integrated Security=SSPI;"

如果你用的是Oracle,你可以用下面的語句:
"Provider=msdaora;Data Source=OracleDataBase;User Id=YourUserName;Password=YourPassWord;"

connectionstrings.com提供了許多關於連接的信息,其中包含了每種可能情況下的連接字符串。

創建ADO.Net對象 

下一步就是創建一個DataReader對象,它用來保存你希望顯示的數據。下面的代碼使用了Command對象的ExecuteReader方法,這樣就創建了一個保存了Northwind客戶數據庫中所有記錄的DataReader對象。
cnn.Open()
sql="SELECT CompanyName, ContactName, Address, City FROM Customers"
cnn=New OleDbCommand(sql,cnn)
dbread=cnn.ExecuteReader()

用Reaperter控件來顯示數據

現在,通過綁定上一步創建的DataReader對象,你就可以用一個Reperter控件來顯示數據。Reaperter控件可以讓你創建一個簡單的模板(例如,Html表),對查詢所返回的每行數據都重復這個操作。

用HerderTemplate塊來創建初始的表結構;數據將出現在ItemTemplate(表的行和列)塊中。例如,下面的代碼為我們的客戶數據創建一個表頭,它用來指示早先SQL語句所返回的字段:
<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>CompanyName</th>
<th>ContactName</th>
<th>Address</th>
<th>City</th>
</tr>
</HeaderTemplate>

與其它的ASP.Net對象不同,Repeater對象沒有現成的布局(layout)和樣式;你必須定義你自己的布局和樣式。返回數據的每一行都顯示在ItemTemplate塊中。下面的腳本中每一個字段都包含了一個單元(cell)(在Html表中):
<ItemTemplate>
<tr>
<td><%#Container.DataItem("CompaName")%></td>
<td><%#Container.DataItem("ContactName")%></td>
<td><%#Container.DataItem("Address")%></td>
<td><%#Container.DataItem("City")%></td>
</tr>
</ItemTemplate>

模板代碼在Html的body標簽中而在腳本定義之外——雖然你不能從上面的例子中看出這一點。

浏覽.Net頁

清單B中的代碼用來在浏覽器中顯示客戶數據(用Html表模板顯示各個數據條目)。

把這些腳本復制粘貼到任何一個文本編輯器中,並保存為.ASPx格式的文件。然後把該文件另存或者拷貝到Web根目錄下(本例的根目錄為wwwroot\nettest)。啟動你的浏覽器並輸入合適的地址,這樣打開了這個文件。當浏覽器載入該文件後(如圖A所示),浏覽器將顯示一個簡單的Html網頁,其中包含了SQL語句的請求所返回的數據。

圖A

浏覽器中的.Net頁面

你還可以改進頁面的外觀。例如,通過添加其它模板塊來改變每行的顏色。AlternatingItem.Template塊可以改變每一個表單元的背景顏色。下面的腳本會把單元的背景改成黃.色(FFFF00):
<AlternatingItemTemplate>
<tr bgcolor="#FFFF00">
<td><%#Container.DataItem("companyname")%></td>
<td><%#Container.DataItem("contactname")%></td>
<td><%#Container.DataItem("address")%></td>
<td><%#Container.DataItem("city")%></td>
<td><%#Container.DataItem("Region")%></td>
</tr>
</AlternatingItemTemplate>

為了對其它所有行起作用,把AlternatingItemTemplate塊放到ItemTemplate塊之後。

小節
盡管.NET並不是特別新鮮的東東,但如果你還沒有實現從傳統ASP到ASP.Net的跳躍,那麼現在開始也不遲。如果你在ASP和ADO領域有著豐富的經驗,那麼這個轉換將會相當的簡單。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved