数据访问一直是开发 Web 应用程序的一个关键问题。现在,大多数复杂的应用程序都可以利用 ASP.NET 2.0 提供的数据访问工具。从体系结构和机制上限制 ASP.NET 1.x 执行的绑定和缓存问题,在 ASP.NET 2.0 中都得以解决了。
数据源类型
ASP.NET 2.0 提供了几个独特的数据源对象,用于为数据绑定控件构造一个公共接口框架。数据源的对象用于操作不同的基础结构(从数据库、内存中的对象到 XML 文件),为控件提供抽象数据操作功能。
AccessDataSource 如果在应用程序中使用 Microsoft Access 数据库,则能够通过
System.Web.UI.WebControls.AccessDataSource 执行插入、更新和删除数据的操作。Access 数据库是提供基本关系存储的最小数据库。因为使用起来既简单又方便,所以许多小型的 Web 站点通过 Access 形成数据存储层。虽然 Access 不提供像 SQL Server 这样的关系数据库的所有功能,但是其简单性和易用性使 Access 非常适合应用于原型开发和快速应用程序开发 (RAD)。
SqlDataSource 为了提供一个更加健壮的数据库,综合利用 Microsoft SQL Server 提供的广泛功能,ASP.NET 2.0 提供了
SQLDataSource。
SQLDataSource 的配置比
AccessDataSource 的更为复杂,
SQLDataSource 用于企业级应用程序,这些应用程序需要一个真正的数据库管理系统 (DBMS) 所拥有的功能。
ObjectDataSource
System.Web.UI.WebControls.ObjectDataSource 用于实现一个数据访问层,从而提供更好的封装和抽象。
ObjectDataSource 控件支持绑定到一个特定的数据层,而非绑定到一个数据库,其绑定方式与使用其他控件绑定数据库的方式相同。
ObjectDataSource 控件能够绑定到任何一个方法,该方法返回一个
DataSet 对象或
IEnumerable 对象(例如,一个
DataReader 或类集合)。
<asp:objectdatasource id="ObjectDataSource" runat="server"
typename="DAL.Customers" selectmethod="GetOrders">
</asp:objectdatasource> |
ObjectDataSource 控件使用 Web 服务代理的方式与使用数据访问层的方式完全相同。换句话说,
ObjectDataSource 处理设计正确的 Web 服务与处理一个关系数据库的方式相同。
DataSetDataSource System.Web.UI.WebControls.DataSetDataSource 控件允许使用 XML 列表数据。列表数据以行和列排列。
<?xml version="1.0"?>
<collection>
<book>
<title>cosmos</title>
<author>carl sagan</author>
<publisher>ballantine books</publisher>
</book>
<book>
<title>catwings</title>
<author>ursula k. le guin</author>
<publisher>scholastic</publisher>
</book>
</collection> |
要使用数据,只需设置
DataFile 属性,使其指向 XML 文件。
<asp:datasetdatasource id="Datasetdatasource1"
runat="server" datafile="collection.xml" /> |
数据源能够连接到任何列表控件,例如
DataGrid。
XmlDataSource XML 数据通常用于表示半结构化或层次化数据。使用 XML 文档作为数据源,可以从其他资源(例如,其他公司或现有应用程序)接收 XML 文档,并将 XML 数据格式化,以便与应用程序兼容。
要配置一个
System.Web.UI.WebControls.XmlDataSource,必须指定 XML 文件的路径,如果 XML 需要传输数据,则还需指定 XSLT 样式表路径或
XPath 查询路径(可选)。
<asp:XmlDataSource ID="XmlDataSource1"
Runat="server" DataFile="~/xml/fruits.xml">
</asp:XmlDataSource> |
XMLDataSource 特别适用于拥有层次结构的控件,例如,树视图或数据列表。
<asp:TreeView ID="TreeView1" Runat="server"
DataSourceID="XmlDataSource1" ShowLines="True">
</asp:TreeView> |
以上两个列表说明了如何声明性地配置一个
XmlDataSource 和一个
TreeView 控件,使之呈现如图 2 所示的 XML 层次结构。
图 2. TreeView 控件