导航

Data Access Application Block for .NET

Posted on 2011-04-09 13:55  毅无涯  阅读(161)  评论(0编辑  收藏  举报

内部设计

数据访问应用程序块包含了完整的源代码和有关其设计的综合指南。本节介绍有关主要实现的详细信息。

SqlHelper 类实现详细信息

SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。

SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。在 SqlHelper 类中实现的方法包括:

ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。

ExecuteReader。此方法用于返回 SqlDataReader 对象,该对象包含由某一命令返回的结果集。

ExecuteDataset。此方法返回 DataSet 对象,该对象包含由某一命令返回的结果集。

ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。

ExecuteXmlReader。此方法返回 FOR XML 查询的 XML 片段。

FillDataset。此方法类似于 ExecuteDataset,不同之处在于可以传入预先存在的 DataSet,从而允许添加附加表。

UpdateDataset。此方法使用现有的连接和用户指定的更新命令来更新 DataSet。它通常与 CreateCommand 命令结合使用。

CreateCommand。此方法允许提供存储过程和可选参数,从而简化了 SQL 命令对象的创建过程。此方法通常与 UpdateDataset 结合使用。

ExecuteNonQueryTypedParams。此方法使用数据行而不是参数来执行非查询操作。

ExecuteDatasetTypedParams。此方法使用数据行而不是参数来执行 DataSet 创建操作。

ExecuteReaderTypedParams。此方法使用数据行而不是参数来返回数据读取器。

ExecuteScalarTypedParams。此方法使用数据行而不是参数来返回标量。

ExecuteXmlReaderTypedParams。此方法使用数据行而不是参数来执行 XmlReader

除了这些公共方法以外,SqlHelper 类还包含一些专用函数,用于管理参数和准备要执行的命令。不管客户端调用什么样的方法实现,所有命令都通过使用 SqlCommand 对象来执行。在执行此 SqlCommand 对象之前,必须将所有参数添加到它的 Parameters 集合中,并且必须相应地设置 ConnectionCommandTypeCommandTextTransaction 属性。SqlHelper 类中的专用函数主要用于提供一种一致的方式,以便对 SQL Server 数据库执行命令,而不考虑客户端应用程序所调用的重载方法实现。SqlHelper 类中的专用实用工具函数包括:

AttachParameters。该函数用于将任何需要的 SqlParameter 对象附加到要执行的 SqlCommand

AssignParameterValues。该函数用于向 SqlParameter 对象赋值。

PrepareCommand。该函数用于对命令的属性(如连接、事务上下文等)进行初始化。

ExecuteReaderExecuteReader 的这一专用实现用于打开 SqlDataReader 对象,并使用相应的 CommandBehavior 以最有效的方式来管理与该读取器关联的连接的生命期。

SqlHelperParameterCache 类实现详细信息

参数数组缓存在专用的 Hashtable 中。从缓存中检索的参数在内部进行复制,这样客户端应用程序能够更改参数值以及进行其他操作,而不会影响缓存的参数数组。专用共享函数 CloneParameters 用于实现此目的。

 

原文链接:http://www.microsoft.com/china/MSDN/library/EnterpriseDevelopment/BuildDistApp/Vsdnbdadaab_rm.mspx?mfr=true