正 文

ASP.NET 2.0 中的数据源控件


www.7dspace.com  更新日期:2005-10-11 8:43:30  七度空间


增强的强类型DataSet

上一个示例演示了如何将 GridView 绑定到 ObjectDataSource 控件以链接到业务层的类,因此您可以通过该类的方法来检索和更新数据。如果您具有现有的业务层逻辑和多层体系结构,则该示例可以很好地工作。它还可以调用 Web 服务客户端代理的方法,或其他任何遵循类和方法要求的引用类的方法。

我故意将上个示例的一个方面延迟到现在才加以讨论,那就是强类型 DataSet。使用 Visual Studio 2005 中的向导,您还可以直接在类型化的 DataSet 类中定义方法,以便选择、插入、更新和删除数据。因而,您可以避免直接在业务层或数据访问层中编写任何 ADO.NET 代码,而是使用向导直接将 ADO.NET 逻辑添加到类型化的 DataSet 中。

您不必检索类型化的 DataSet,但是在这种情况下它是有价值的 — 这要归功于它的一些新的增强功能。类型化的 DataSet 创建了一个默认的 Fill 方法,该方法被追加到类型化 DataSet 的定义中的 TableAdapter 类。可以将这一可选的 TableAdapter 类设置为存储连接字符串以及存储过程或 SQL 语句,以便在数据库中选择、更新、插入和删除记录。

图 9 Orders DataSet

类型化的 DataSet 还允许您创建自定义的方法,以便检索和修改数据。在 Orders DataSet(如图 9 所示)中,我基于 prGet_Orders 存储过程创建了一个类型化的 DataSet。然后,通过数据组件查询配置向导,我向 OrdersTableAdapter 中添加了两个自定义方法:GetData 和 UpdateData。这些方法是在与类型化 DataSet 的 XSD 相关联的类文件内部定义的;在该示例中,我的文件名为 OrdersDataSet.Designer.cs。如果您想了解详细信息,可以打开这个自动生成的文件(但是您不应当修改它,因为如果该文件被重新生成,则您的更改将被改写)并查看自定义的 GetData 和 Update 方法以及为类型化 DataSet 创建的所有标准代码。如果您运行示例页 Orders2.aspx,则它会直接绑定到上述自定义方法。这可以显著减少您为中间层手动编写的代码数量。

其他数据源控件细节

现在我们已经完成了讨论,如果您知道数据源控件还可以通过一系列属性来公开缓存功能,则可能会很感兴趣。通过将 EnableCaching 设置为 true 并将 CacheDuration 设置为很多秒,数据将在缓存中存储相应的时间。还可以将 CacheExpirationPolicy 属性设置为 Absolute 或 Sliding。Absolute 是默认值,它告诉缓存在加载后立即开始倒计时直至过期。Sliding 策略告诉缓存在缓存数据每次被访问时重置过期倒计时。在您要加载的数据不是非常容易改变的情况下,缓存技术可以帮助优化应用程序。例如,在加载省、市甚至产品类别的 DropDownList 的数据源控件中使用缓存是有好处的,因为这些数据不会频繁更改。

ObjectDataSource 控件包装了挂钩到业务对象以调用业务方法的代码。它还与数据绑定控件(例如,GridView)协同工作,以执行分页、排序以及在 ASP.NET 1.x 中必须手动编码的数据更改。

小结

ASP.NET 2.0 中的改进(尤其是在数据源和数据绑定控件领域中的改进)显著减少了产生带有完整分页、排序和编辑功能并填充了数据的网格所需的代码数量。尽管数据源控件消除了过去必须手动编写的大量代码,但您仍然可以编写代码以便与数据源控件进行交互。您不仅可以只通过指指点点来创建数据驱动的 Web 页,而且还可以编写代码来使用数据源控件的事件,例如,Selected、Selecting、Updated 或 Updating 事件。

5页,页码:[1] [2] [3] [4] [5] 

上一篇:SQLXML
下一篇:远离坏道,让硬盘工作在最佳状态
作者:John Papa  来源:MSDN ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐