ASP.NET/資料庫
ASP.NET v1.1.4322
資料庫本質上是一個儲存資料的場所。然而理解“資料庫”一詞的關鍵在於,資料庫是一個儲存資料的電子倉庫。資料庫可以包含任何型別的資料(取決於製造商/供應商)。例如,華夏公益教科書網站就是在資料庫中維護的。
資料庫有很多型別:層次資料庫、網路資料庫、關係資料庫、物件資料庫、XML 資料庫。甚至檔案系統或 Excel 都可以被視為資料庫。
最常見的儲存資料結構是表。表中的每一行都是一條記錄,每一列都是一個欄位。表可以透過共享一個共同的欄位與其他表相關聯。這就是所謂的關聯資料庫。
關係資料庫是當今資料庫市場上的主流資料庫。有一些專有的資料庫,如 Oracle、IBM DB2、Microsoft SQL Server、Sybase、ANTS,以及一些開源資料庫,如 PostgreSQL、MySQL、Derby、Berkeley DB (Sleepcat) 等。
資料庫表通常在長度和寬度上有限制。例如,SQL Server 2005 的行寬限制為 8K,並且許多長度受 32 位定址限制,最多大約為 4E9 條記錄。在 64 位定址下,此限制增加到大約 1.8E19 條記錄。
Microsoft .NET 框架附帶了幾個名稱空間來管理資料庫中的資料。.NET 還附帶了 SQL Server 和 Oracle 的本機提供程式。本機提供程式僅適用於一個數據庫產品,並使用本機資料庫更有效率。雖然存在幾個通用資料庫類,但如果您正在使用具有本機提供程式的資料庫,則應使用它。
在 ASP.NET 中執行資料庫操作相當容易。下面是一個快速示例,說明如何連線到資料庫。
VB.NET
Class Page1
Public Sub Page_Load (byval sender as System.Object, byval eventars as System.EventArgs)
Dim sqlconn as new SQLConnection("database connection string")
sqlconn.Open()
End Sub
End Class
C#.NET
public class Page1
{
public void Page_Load(object sender, EventArgs e)
{
string strConn = "''database connection string''";
// the italicized ''database connection string'' above should
// be replaced by some real valid one.
SqlConnection sqlConn = new SqlConnection(strConn);
sqlConn.Open();
}
}
關於 C# 示例的註釋
- 由於 Page_Load 事件處理程式(即處理此事件的“void”方法)是在類宣告(名為“Page1”)中宣告的,這意味著通常在這種情況下它是在一個單獨的“程式碼隱藏”檔案中,如果頁面的 ASP.NET 檔名為“Page1.aspx”,則其程式碼隱藏檔案通常名為“Page1.aspx.cs”。如果它是在與頁面原始碼相同的檔案中宣告的(即,在 <script runat="server"> ... </script> 標記內),則不需要進行頁面類宣告。
- 如果您正在使用程式碼隱藏編碼模型,則需要在 @Page 指令中包含適當的屬性(有關詳細資訊,請檢視 SDK 文件)。
- 在程式碼隱藏檔案中,類應該在“名稱空間”宣告中宣告(通常以應用程式的名稱命名 - namespace DataAccess{ ... },例如)。
- 建議在名稱空間宣告之上新增 using 宣告,以用於 .NET 框架的整合名稱空間,這樣您就可以使用簡短的名稱來引用 .NET 類,例如,不是 System.Data.SqlClient.SqlConnection。
- Page1 類通常應顯式繼承自 System.Web.UI.Page。因此,我們的 Page1 原始碼檔案可能如下所示:
using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace DataAccess
{
public class Page1 : System.Web.UI.Page
{
public void Page_Load(object sender, EventArgs e)
{
...
}
}
}
- 本例中 Page_Load 事件處理程式的訪問修飾符為“public”。通常使用“protected”甚至“private”訪問修飾符(出於封裝原因)。然而,在本例中,程式設計師可能希望在 Page1 類之外訪問 sqlConn 變數,因此使用“public”...
另請參閱:SQLConnection 引數
class DBConnection
{
public void Page_Load (System.Object sender, System.EventArgs eventars)
{
try
{
SqlConnection sqlconnection = new SqlConnection("database connection string");
sqlconnection.Open();
}
catch(Exception ex)
{
MessageBox.show(ex.message);
}
}
}
server=DBSERVER;database=DBName;Trusted_Connection=True;
在經典的 ASP 中,資料庫連線管理得不是很好。然而隨著 ASP.NET 的出現,資料庫連線池變得相當透明。如果提供相同的連線字串,連線池會自動處理。