数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Data Access Application Block 概述


发布日期:2019年11月14日
 
Data Access Application Block 概述

简介

您是否正在从事 NET 应用程序数据访问代码的设计和开发?您是否觉得自己总是在反复编写相同的数据访问代码?您是否曾经将数据访问代码包装在 Helper 函数中以便能够在一行中调用存储过程?如果是那么 Microsoft? Data Access Application Block for NET 正是为您设计的

Data Access Application Block 将访问 Microsoft SQL Server? 数据库的性能和资源管理方面的最佳经验封装在一起您可以很方便地在自己的 NET 应用程序中将其作为构造块使用从页减少了需要创建测试和维护的自定义代码的数量

尤其是Data Access Application Block 可以帮助您

调用存储过程或 SQL 文本命令

指定参数详细信息

返回 SqlDataReaderDataSet 或 XmlReader 对象

例如在引用了 Data Access Application Block 的应用程序中您可以简单地在一行代码中调用存储过程并生成 DataSet如下所示

[Visual Basic]

Dim ds As DataSet = SqlHelperExecuteDataset( _

connectionString _

CommandTypeStoredProcedure _

getProductsByCategory _

new SqlParameter(@CategoryID categoryID))

[C#]

DataSet ds = SqlHelperExecuteDataset(

connectionString

CommandTypeStoredProcedure

getProductsByCategory

new SqlParameter(@CategoryID categoryID));

注意 Application Block for NET(用于 NET 的应用程序块)是基于对成功的 NET 应用程序进行详细研究而设计的它以源代码的形式提供您可以原样使用也可以针对自己的应用程序进行自定义该应用程序块并不代表未来 Microsoft ADONET 程序库的发展方向Microsoft ADONET 程序库是为在各种使用情况下实现对数据访问行为的精确控制而建立的将来的 ADONET 版本可能会使用不同的模型来实现这个方案

Data Access Application Block 包括哪些内容?

提供了 Data Access Application Block 的源代码以及快速入门示例应用程序您可以使用这些应用程序测试其功能Data Access Application Block 还包括综合文档可以帮助您使用和了解所提供的代码

Visual Studio NET 项目

提供了 Data Access Application Block 的 Microsoft Visual Basic? NET 和 Microsoft Visual C#? 源代码以及每种语言的快速入门示例客户端应用程序您可以使用这些应用程序测试常见的方案这有助于加深您对 Data Access Application Block 的工作原理的了解您还可以自定义源代码以满足自己的需要

您可以编译 Visual Basic 和 C# MicrosoftApplicationBlocksData 项目以生成一个名为 MicrosoftApplicationBlocksDatadll 的程序集该程序集包括一个 SqlHelper 类(其中包含用于执行数据库命令的核心功能)和一个 SqlhelperParameterCache 类(提供参数发现和缓存功能)

文档

Data Access Application Block 的文档主要包括以下内容

使用 Data Access Application Block 开发应用程序本部分包括快速入门示例其中包含多种常见的使用情况可以帮助您快速轻松地掌握 Data Access Application Block(数据访问应用程序块)的使用

Data Access Application Block 的设计与实现本部分包括背景设计原理信息以便用户深入了解 Data Access Application Block 的设计与实现

部署和运行本部分包括安装信息其中包含部署和更新选项以及与安全性有关的信息

参考本部分包含综合的 API 参考其中详细介绍了构成 Data Access Application Block 的类和接口

系统要求

要运行 Data Access Application Block需要满足以下要求

Microsoft Windows? Windows XP Professional

NET Framework SDK(英文)的 RTM 版本

Visual Studio? NET 的 RTM 版本(推荐但不必需)

SQL Server 或更高版本的数据库服务器

下载并安装 Data Access Application Block

您可以获取一个包含已签名的 Data Access Application Block 程序集和综合文档的 Windows 安装程序文件

安装进程将在您的程序菜单中创建一个 Microsoft Application Blocks for NET(用于 NET 的 Microsoft 应用程序块)子菜单该子菜单中有一个 Data Access(数据访问)子菜单其中包括用于启动文档的选项和用于启动 Data Access Application Block Visual Studio NET 解决方案的选项

请转到 MSDN Downloads(英文)进行下载

使用 Data Access Application Block

本节讨论如何使用 Data Access Application Block 来执行数据库命令和管理参数 显示了 Data Access Application Block 的主要元素

  

Data Access Application Block

SqlHelper 类提供了一组静态方法可以用来向 SQL Server 数据库发出许多各种不同类型的命令

SqlHelperParameterCache 类提供命令参数缓存功能可以用来提高性能该类由许多 Execute 方法(尤其是那些只运行存储过程的重写方法)在内部使用数据访问客户端也可以直接使用它来缓存特定命令的特定参数集

使用 SqlHelper 类执行命令

SqlHelper 类提供了五种 Shared (Visual Basic) 或 static (C#) 方法它们是ExecuteNonQueryExecuteDatasetExecuteReaderExecuteScalar 和 ExecuteXmlReader实现的每种方法都提供一组一致的重载这提供了一种很好的使用 SqlHelper 类来执行命令的模式同时为开发人员选择访问数据的方式提供了必要的灵活性每种方法的重载都支持不同的方法参数因此开发人员可以确定传递连接事务和参数信息的方式类中实现的所有方法都支持以下重载

[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 之外的其他方法还提供了另一种重载允许将连接信息作为连接字符串而不是连接对象来传递如下面的方法签名所示

[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 不               

上一篇:改善Form提交数据的UI 交互设计

下一篇:oracle中的数据库乱码的原因与解决