在 .NET 應用程式開發中,資料存取層的編寫往往佔據了大量重複性工作。Microsoft 推出的 Data Access Application Block 正是為了解決這一痛點而設計的成熟解決方案。它封裝了對 Microsoft SQL Server 資料庫存取的最佳實踐,包含優化的資料存取程式碼,能顯著減少開發人員需要編寫、測試和維護的自訂程式碼數量。
Data Access Application Block 主要提供以下核心能力:
SqlDataReader、DataSet 或 XmlReader 物件開發人員可以將其作為建構組塊直接用於自己的 .NET 應用程式中。完整的 C# 和 Visual Basic .NET 原始碼以及綜合文件均可下載使用。
引用 Application Block 後,只需一行程式碼即可呼叫預存程序並產生 DataSet:
Dim ds As DataSet = SqlHelper.ExecuteDataset( _
connectionString, _
CommandType.StoredProcedure, _
"getProductsByCategory", _
New SqlParameter("@CategoryID", categoryID))
DataSet ds = SqlHelper.ExecuteDataset(
connectionString,
CommandType.StoredProcedure,
"getProductsByCategory",
new SqlParameter("@CategoryID", categoryID));
提供一組靜態方法,用於向 SQL Server 資料庫發出各類命令,包含五種核心方法:
ExecuteNonQuery - 執行不回傳資料列的命令(INSERT、UPDATE、DELETE)ExecuteDataset - 執行命令並回傳 DataSetExecuteReader - 執行命令並回傳 SqlDataReaderExecuteScalar - 執行命令並回傳單一值ExecuteXmlReader - 執行命令並回傳 XmlReader每種方法都提供一組一致的多載,支援不同的參數傳遞方式(連接字串、SqlConnection、SqlTransaction 等),給予開發人員最大靈活性。
提供命令參數快取功能以提升效能。該類別由許多 Execute 方法(特別是僅執行預存程序的多載)在內部使用。資料存取用戶端也可直接使用它來快取特定命令的特定參數集。
所有方法均支援以下標準多載模式:
[Visual Basic]
Execute* (ByVal connection As SqlConnection, _
ByVal commandType As CommandType, _
ByVal commandText As String)
Execute* (ByVal connection As SqlConnection, _
ByVal commandType As CommandType, ...)
注意: Application Block for .NET 是基於對成功 .NET 應用程式的詳細研究而設計,以原始碼形式提供,可原樣使用或自訂。它不代表未來 Microsoft ADO.NET 程式庫的發展方向。未來的 ADO.NET 版本可能會使用不同模型實現同樣功能。
Data Access Application Block 為 .NET 開發人員提供了標準化、高效能的資料存取基礎設施。透過 SqlHelper 類別的靜態方法,開發人員能以極少的程式碼完成複雜的資料庫操作,同時享有參數快取、連接管理等企業級特性。無論是新專案開發還是既有系統重構,都是極佳的選擇。