永久免费看黄A片无码软件,japanese 在线观看国产,强奷高H猛烈失禁潮喷播放,亚洲成精品自拍

rexian

咨詢電話:023-6276-4481

熱門(mén)文章

聯(lián)系方式

電 話:023-6276-4481

郵箱:broiling@qq.com

地址:重慶市南岸區(qū)亞太商谷6幢25-2

當(dāng)前位置:網(wǎng)站首頁(yè) > 技術(shù)文章 > Microsoft Application Blocks for .NET

Microsoft Application Blocks for .NET

編輯:Ethan 發(fā)表時(shí)間:2017-11-07 12:57:59
Ethan

簡(jiǎn)介

您是否正在從事 .NET 應(yīng)用程序數(shù)據(jù)訪問(wèn)代碼的設(shè)計(jì)和開(kāi)發(fā)?您是否覺(jué)得自己總是在反復(fù)編寫(xiě)相同的數(shù)據(jù)訪問(wèn)代碼?您是否曾經(jīng)將數(shù)據(jù)訪問(wèn)代碼包裝在 Helper 函數(shù)中,以便能夠在一行中調(diào)用存儲(chǔ)過(guò)程?如果是,那么 Microsoft? Data Access Application Block for .NET 正是為您設(shè)計(jì)的。

Data Access Application Block 將訪問(wèn) Microsoft SQL Server? 數(shù)據(jù)庫(kù)的性能和資源管理方面的最佳經(jīng)驗(yàn)封裝在一起。您可以很方便地在自己的 .NET 應(yīng)用程序中將其作為構(gòu)造塊使用,從頁(yè)減少了需要?jiǎng)?chuàng)建、測(cè)試和維護(hù)的自定義代碼的數(shù)量。

尤其是,Data Access Application Block 可以幫助您:

  • 調(diào)用存儲(chǔ)過(guò)程或 SQL 文本命令。

  • 指定參數(shù)詳細(xì)信息。

  • 返回 SqlDataReader、DataSet 或 XmlReader 對(duì)象。

例如,在引用了 Data Access Application Block 的應(yīng)用程序中,您可以簡(jiǎn)單地在一行代碼中調(diào)用存儲(chǔ)過(guò)程并生成 DataSet,如下所示:

[Visual Basic]
Dim ds As DataSet = SqlHelper.ExecuteDataset( _
      connectionString, _
      CommandType.StoredProcedure, _
      "getProductsByCategory", _
      new SqlParameter("@CategoryID", categoryID))
 
[C#]
DataSet ds = SqlHelper.ExecuteDataset( 
      connectionString,
      CommandType.StoredProcedure,
      "getProductsByCategory",
      new SqlParameter("@CategoryID", categoryID));
注意: Application Block for .NET(用于 .NET 的應(yīng)用程序塊)是基于對(duì)成功的 .NET 應(yīng)用程序進(jìn)行詳細(xì)研究而設(shè)計(jì)的。它以源代碼的形式提供,您可以原樣使用,也可以針對(duì)自己的應(yīng)用程序進(jìn)行自定義。該應(yīng)用程序塊并不代表未來(lái) Microsoft ADO.NET 程序庫(kù)的發(fā)展方向。Microsoft ADO.NET 程序庫(kù)是為在各種使用情況下實(shí)現(xiàn)對(duì)數(shù)據(jù)訪問(wèn)行為的精確控制而建立的。將來(lái)的 ADO.NET 版本可能會(huì)使用不同的模型來(lái)實(shí)現(xiàn)這個(gè)方案。

本概述的其余部分包括以下內(nèi)容:

Data Access Application Block 包括哪些內(nèi)容?

下載和安裝 Data Access Application Block

使用 Data Access Application Block

內(nèi)部設(shè)計(jì)

常見(jiàn)問(wèn)題

反饋和支持

合作者

Data Access Application Block 包括哪些內(nèi)容?

提供了 Data Access Application Block 的源代碼以及快速入門(mén)示例應(yīng)用程序,您可以使用這些應(yīng)用程序測(cè)試其功能。Data Access Application Block 還包括綜合文檔,可以幫助您使用和了解所提供的代碼。

Visual Studio .NET 項(xiàng)目

提供了 Data Access Application Block 的 Microsoft Visual Basic? .NET 和 Microsoft Visual C#? 源代碼,以及每種語(yǔ)言的快速入門(mén)示例客戶端應(yīng)用程序,您可以使用這些應(yīng)用程序測(cè)試常見(jiàn)的方案。這有助于加深您對(duì) Data Access Application Block 的工作原理的了解。您還可以自定義源代碼以滿足自己的需要。

您可以編譯 Visual Basic 和 C# Microsoft.ApplicationBlocks.Data 項(xiàng)目,以生成一個(gè)名為 Microsoft.ApplicationBlocks.Data.dll 的程序集。該程序集包括一個(gè) SqlHelper 類(其中包含用于執(zhí)行數(shù)據(jù)庫(kù)命令的核心功能)和一個(gè) SqlhelperParameterCache 類(提供參數(shù)發(fā)現(xiàn)和緩存功能)。

文檔

Data Access Application Block 的文檔主要包括以下內(nèi)容:

  • 使用 Data Access Application Block 開(kāi)發(fā)應(yīng)用程序。本部分包括快速入門(mén)示例,其中包含多種常見(jiàn)的使用情況,可以幫助您快速輕松地掌握 Data Access Application Block(數(shù)據(jù)訪問(wèn)應(yīng)用程序塊)的使用。

  • Data Access Application Block 的設(shè)計(jì)與實(shí)現(xiàn)。本部分包括背景設(shè)計(jì)原理信息,以便用戶深入了解 Data Access Application Block 的設(shè)計(jì)與實(shí)現(xiàn)。

  • 部署和運(yùn)行。本部分包括安裝信息,其中包含部署和更新選項(xiàng)以及與安全性有關(guān)的信息。

  • 參考。本部分包含綜合的 API 參考,其中詳細(xì)介紹了構(gòu)成 Data Access Application Block 的類和接口。

系統(tǒng)要求

要運(yùn)行 Data Access Application Block,需要滿足以下要求:

  • Microsoft Windows? 2000、Windows XP Professional

  • .NET Framework SDK(英文)的 RTM 版本

  • Visual Studio? .NET 的 RTM 版本(推薦,但不必需)

  • SQL Server 7.0 或更高版本的數(shù)據(jù)庫(kù)服務(wù)器

下載并安裝 Data Access Application Block

您可以獲取一個(gè)包含已簽名的 Data Access Application Block 程序集和綜合文檔的 Windows 安裝程序文件。

安裝進(jìn)程將在您的“程序”菜單中創(chuàng)建一個(gè) Microsoft Application Blocks for .NET(用于 .NET 的 Microsoft 應(yīng)用程序塊)子菜單。該子菜單中有一個(gè) Data Access(數(shù)據(jù)訪問(wèn))子菜單,其中包括用于啟動(dòng)文檔的選項(xiàng)和用于啟動(dòng) Data Access Application Block Visual Studio .NET 解決方案的選項(xiàng)。

請(qǐng)轉(zhuǎn)到 MSDN Downloads(英文)進(jìn)行下載。

使用 Data Access Application Block

本節(jié)討論如何使用 Data Access Application Block 來(lái)執(zhí)行數(shù)據(jù)庫(kù)命令和管理參數(shù)。圖 1 顯示了 Data Access Application Block 的主要元素。

圖 1:Data Access Application Block

SqlHelper 類提供了一組靜態(tài)方法,可以用來(lái)向 SQL Server 數(shù)據(jù)庫(kù)發(fā)出許多各種不同類型的命令。

SqlHelperParameterCache 類提供命令參數(shù)緩存功能,可以用來(lái)提高性能。該類由許多 Execute 方法(尤其是那些只運(yùn)行存儲(chǔ)過(guò)程的重寫(xiě)方法)在內(nèi)部使用。數(shù)據(jù)訪問(wèn)客戶端也可以直接使用它來(lái)緩存特定命令的特定參數(shù)集。

使用 SqlHelper 類執(zhí)行命令

SqlHelper 類提供了五種 Shared (Visual Basic) 或 static (C#) 方法,它們是:ExecuteNonQuery、ExecuteDatasetExecuteReader、ExecuteScalar 和 ExecuteXmlReader。實(shí)現(xiàn)的每種方法都提供一組一致的重載。這提供了一種很好的使用 SqlHelper 類來(lái)執(zhí)行命令的模式,同時(shí)為開(kāi)發(fā)人員選擇訪問(wèn)數(shù)據(jù)的方式提供了必要的靈活性。每種方法的重載都支持不同的方法參數(shù),因此開(kāi)發(fā)人員可以確定傳遞連接、事務(wù)和參數(shù)信息的方式。類中實(shí)現(xiàn)的所有方法都支持以下重載:

[Visual Basic]
Execute* (ByVal connection As SqlConnection, _
          ByVal commandType As CommandType, _
          ByVal CommandText As String)

Execute* (ByVal connection As SqlConnection, _
          ByVal commandType As CommandType, _
          ByVal commandText As String, _
          ByVal ParamArray commandParameters() As SqlParameter)

Execute* (ByVal connection As SqlConnection, _
          ByVal spName As String, _
          ByVal ParamArray parameterValues() As Object)

Execute* (ByVal transaction As SqlTransaction, _
          ByVal commandType As CommandType, _
          ByVal commandText As String)

Execute* (ByVal transaction As SqlTransaction, _
          ByVal commandType As CommandType, _
          ByVal commandText As String, _
          ByVal ParamArray commandParameters() As SqlParameter)

Execute* (ByVal transaction As SqlTransaction, _
          ByVal spName As String, _
          ByVal ParamArray parameterValues() As Object)

[C#]
Execute* (SqlConnection connection, CommandType commandType, 
          string commandText)

Execute* (SqlConnection connection, CommandType commandType,
          string commandText, params SqlParameter[] commandParameters)

Execute* (SqlConnection connection, string spName, 
          params object[] parameterValues)

Execute* (SqlConnection connection, 
          CommandType commandType, string commandText)

Execute* (SqlConnection connection,
          CommandType commandType, string commandText, 
          params SqlParameter[] commandParameters)

Execute* (SqlConnection connection,
          string spName, params object[] parameterValues)

除這些重載以外,除 ExecuteXmlReader 之外的其他方法還提供了另一種重載:允許將連接信息作為連接字符串而不是連接對(duì)象來(lái)傳遞,如下面的方法簽名所示:

[Visual Basic]
Execute* (ByVal connectionString As String, _
          ByVal commandType As CommandType, _
          ByVal commandText As String)

Execute* (ByVal connectionString As String, _
          ByVal commandType As CommandType, _
          ByVal commandText As String, _
          ByVal ParamArray commandParameters() As SqlParameter)

Execute* (ByVal connectionString As String, _
          ByVal spName As String, _
          ByVal ParamArray parameterValues() As Object)

[C#]
Execute* (string connectionString, CommandType commandType, 
          string commandText)

Execute* (string connectionString, CommandType commandType, 
          string commandText, 
          params SqlParameter[] commandParameters)

Execute* (string connectionString, string spName, 
          params object[] parameterValues)
注意: ExecuteXmlReader 不支持連接字符串,因?yàn)椋号c SqlDataReader 對(duì)象不同,XmlReader 對(duì)象在 XmlReader 關(guān)閉時(shí)沒(méi)有提供自動(dòng)關(guān)閉連接的方法。如果客戶端傳遞了連接字符串,那么當(dāng)客戶端完成對(duì) XmlReader 的操作后,將無(wú)法關(guān)閉與 XmlReader 相關(guān)聯(lián)的連接對(duì)象。

通過(guò)參考 Data Access Application Block 程序集并導(dǎo)入 Microsoft.ApplicationBlocks.Data 命名空間,您可以輕松編寫(xiě)使用任何一種 SqlHelper 類方法的代碼,如下面的代碼示例所示:

[Visual Basic]
Imports Microsoft.ApplicationBlocks.Data

[C#]
using Microsoft.ApplicationBlocks.Data;

導(dǎo)入命名空間后,您可以調(diào)用任何 Execute* 方法,如下面的代碼示例所示:

[Visual Basic]
Dim ds As DataSet = SqlHelper.ExecuteDataset( _
   "SERVER=(local);DATABASE=Northwind;INTEGRATED SECURITY=True;",
     _
   CommandType.Text, "SELECT * FROM Products")

[C#]
DataSet ds = SqlHelper.ExecuteDataset( 
   "SERVER=DataServer;DATABASE=Northwind;INTEGRATED
     SECURITY=sspi;", _
   CommandType.Text, "SELECT * FROM Products");

使用 SqlHelperParameterCache 類管理參數(shù)

SqlHelperParameterCache 類提供了三種可以用來(lái)管理參數(shù)的公共共享方法。它們是:

  • CacheParameterSet。用于將 SqlParameters 數(shù)組存儲(chǔ)到緩存中。

  • GetCachedParameterSet。用于檢索緩存的參數(shù)數(shù)組的副本。

  • GetSpParameterSet。一種重載方法,用于檢索指定存儲(chǔ)過(guò)程的相應(yīng)參數(shù)(首先查詢一次數(shù)據(jù)庫(kù),然后緩存結(jié)果以便將來(lái)查詢)。

緩存和檢索參數(shù)

通過(guò)使用 CacheParameterSet 方法,可以緩存 SqlParameter 對(duì)象數(shù)組。此方法通過(guò)將連接字符串和命令文本連接起來(lái)創(chuàng)建一個(gè)鍵,然后將參數(shù)數(shù)組存儲(chǔ)在 Hashtable 中。

要從緩存中檢索參數(shù),請(qǐng)使用 GetCachedParameterSet 方法。此方法將返回一個(gè) SqlParameter 對(duì)象數(shù)組,這些對(duì)象已使用緩存(與傳遞給該方法的連接字符串和命令文本相對(duì)應(yīng))中的參數(shù)的名稱、值、方向和數(shù)據(jù)類型等進(jìn)行了初始化。

注意: 用作參數(shù)集的鍵的連接字符串通過(guò)簡(jiǎn)單的字符串比較進(jìn)行匹配。用于從 GetCachedParameterSet 中檢索參數(shù)的連接字符串必須與用來(lái)通過(guò) CacheParameterSet 來(lái)存儲(chǔ)這些參數(shù)的連接字符串完全相同。語(yǔ)法不同的連接字符串即使語(yǔ)義相同,也不會(huì)被認(rèn)為是匹配的。

以下代碼顯示了如何使用 SqlHelperParameterCache 類來(lái)緩存和檢索 Transact-SQL 語(yǔ)句的參數(shù)。

[Visual Basic]
' 初始化連接字符串和命令文本
' 它們將構(gòu)成用來(lái)存儲(chǔ)和檢索參數(shù)的鍵
Const CONN_STRING As String = _
  "SERVER=(local); DATABASE=Northwind; INTEGRATED SECURITY=True;"
Dim sql As String = _
       "SELECT ProductName FROM Products " + _
       "WHERE Category=@Cat AND SupplierID = @Sup"

' 緩存參數(shù)
Dim paramsToStore(1) As SqlParameter
paramsToStore(0) = New SqlParameter("@Cat", SqlDbType.Int)
paramsToStore(1) = New SqlParameter("@Sup", SqlDbType.Int)
SqlHelperParameterCache.CacheParameterSet(CONN_STRING, _
                                          sql, _
                                          paramsToStore)

' 從緩存中檢索參數(shù)
Dim storedParams(1) As SqlParameter
storedParams = SqlHelperParameterCache.GetCachedParameterSet( _
                                                 CONN_STRING, sql)
storedParams(0).Value = 2
storedParams(1).Value = 3

' 在命令中使用參數(shù)
Dim ds As DataSet
ds = SqlHelper.ExecuteDataset(CONN_STRING, _
                              CommandType.Text, _
                              sql, storedParams)

[C#]
// 初始化連接字符串和命令文本
// 它們將構(gòu)成用來(lái)存儲(chǔ)和檢索參數(shù)的鍵
const string CONN_STRING =
  "SERVER=(local); DATABASE=Northwind; INTEGRATED SECURITY=True;";
string spName = "SELECT ProductName FROM Products " + 
                "WHERE Category=@Cat AND SupplierID = @Sup";

// 緩存參數(shù)
SqlParameter[] paramsToStore = new SqlParameter[2];
paramsToStore[0] = New SqlParameter("@Cat", SqlDbType.Int);
paramsToStore[1] = New SqlParameter("@Sup", SqlDbType.Int);
SqlHelperParameterCache.CacheParameterSet(CONN_STRING, 
                                          sql, 
                                          paramsToStore);

// 從緩存中檢索參數(shù)
SqlParameter storedParams = new SqlParameter[2];
storedParams = SqlHelperParameterCache.GetCachedParameterSet(
                                              CONN_STRING, sql);
storedParams(0).Value = 2;
storedParams(1).Value = 3;

// 在命令中使用參數(shù)
DataSet ds;
ds = SqlHelper.ExecuteDataset(CONN_STRING, 
                              CommandType.StoredProcedure,
                              sql, storedParams);

檢索存儲(chǔ)過(guò)程參數(shù)

SqlHelperParameterCache 還提供了針對(duì)特定存儲(chǔ)過(guò)程檢索參數(shù)數(shù)組的方法。一種名為 GetSpParameterSet 的重載方法提供了此功能,它包含兩種實(shí)現(xiàn)。該方法嘗試從緩存中檢索特定存儲(chǔ)過(guò)程的參數(shù)。如果這些參數(shù)尚未被緩存,則使用 .NET 的 SqlCommandBuilder 類從內(nèi)部檢索,并將它們添加到緩存中,以便用于后續(xù)的檢索請(qǐng)求。然后,為每個(gè)參數(shù)指定相應(yīng)的參數(shù)設(shè)置,最后將這些參數(shù)以數(shù)組形式返回給客戶端。以下代碼顯示了如何檢索 Northwind 數(shù)據(jù)庫(kù)中 SalesByCategory 存儲(chǔ)過(guò)程的參數(shù)。

[Visual Basic]
' 初始化連接字符串和命令文本
' 它們將構(gòu)成用來(lái)存儲(chǔ)和檢索參數(shù)的鍵
Const CONN_STRING As String = _
  "SERVER=(local); DATABASE=Northwind; INTEGRATED SECURITY=True;"
Dim spName As String = "SalesByCategory"

' 檢索參數(shù)
Dim storedParams(1) As SqlParameter
storedParams = SqlHelperParameterCache.GetSpParameterSet( _
                                          CONN_STRING, spName)
storedParams(0).Value = "Beverages"
storedParams(1).Value = "1997"

' 在命令中使用參數(shù)
Dim ds As DataSet
ds = SqlHelper.ExecuteDataset(CONN_STRING, _
                              CommandType.StoredProcedure, _
                              spName, storedParams)

[C#]
// 初始化連接字符串和命令文本
// 它們將構(gòu)成用來(lái)存儲(chǔ)和檢索參數(shù)的鍵
const string CONN_STRING = 
  "SERVER=(local); DATABASE=Northwind; INTEGRATED SECURITY=True;";
string spName = "SalesByCategory";

// 檢索參數(shù)
SqlParameter storedParams = new SqlParameter[2];
storedParams = SqlHelperParameterCache.GetSpParameterSet(
                                          CONN_STRING, spName);
storedParams[0].Value = "Beverages";
storedParams[1].Value = "1997";

// 在命令中使用參數(shù)
DataSet ds;
ds = SqlHelper.ExecuteDataset(CONN_STRING, 
                              CommandType.StoredProcedure,
                              spName, storedParams);