您的位置: 遂宁资讯网 > 星座

ASP.NET 2.0 ObjectDataSource控件

发布时间:2019-09-13 20:28:01

绑定数据访问层的操作可能很单调乏味,因为在DAL的不同方法中,执行SQL语句或存储过程的ADO.NET代码时相同的或相似的。虽然你可以利用上述技术数用定制的ADO.NET代码来编写自己的DAL,Visual Studio还是提供了一条基于简单的向导生成数据访问层的方便途径。在这种情况下,数据访问层是强化类型的数据集对象。该数据集包含了TableAdapter类型,它暴露了用于返回强化类型的数据表对象的方法。这些方法适合于直接绑定到ObjectDataSource,或者在业务逻辑层组件中调用。

为了给Visual Studio对象添加数据集,你需要右键点击“解决方案浏览器”并选择“添加新项”,接着选择“数据集”项类型。Visual Studio给App_Code目录添加了一个DataSet.xsd文件,并打开了数据集设计器,载入了TableAdapter向导。你可以跟随TableAdapter向导,指定数据库中的SQL语句或存储过程,接着在向导的最后一个页面中输入与这些查询/命令关联的方法名称。

TableAdapter可以暴露两个方法:Fill方法用于填充已有的数据集,Get方法返回一个已经填充好的数据表对象。前者更适合于Windows客户端(在应用程序的生命周期中数据集保存在内存中),而后者适合于ObjectDataSource。TableAdapter向导还为你提供的SQL选择语句自动地生成了更新、插入和删除方法(需要选择主键)。在配置好向导之后,Visual Studio给数据集设计器添加了一个新的数据表和TableAdapter类型。

TableAdapter描述了单个结果集的大纲和大纲上的选择、更新、插入或删除操作。你可以通过在数据集设计器中右键单击,给数据集添加多个TableAdapter。你还可以右键点击设计器中的TableAdapter框给TableAdapter添加额外的查询(倘若它们返回相同的大纲)。例如,你的TableAdapter可能同时包含了GetAuthors()和GetAuthorsById(int id) 方法,但是如果要添加GetTitles()方法,可能需要添加一个新的TableAdapter。下图显示了添加了多个TableAdapter的数据集设计器:

你完成数据集的设计之后,就可以保存DataSet.xsd文件了(它引起该类型被设计器后台编译,以供页面使用)。你可以看到暴露给页面代码的这些类型:

protected void Page_Load(object sender, EventArgs e)

{

DataSetTableAdapters.PhotosTableAdapter adapter = new  DataSetTableAdapters.PhotosTableAdapter();

adapter.GetPhotosForAlbum(0);

}

但是,你不需要从自己的代码中调用这些方法。你可以把ObjectDataSource绑定到这些方法:

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"

TypeName="DataSetTableAdapters.PhotosTableAdapter"

SelectMethod="GetPhotosForAlbum">

<SelectParameters>

<asp:QueryStringParameter Name="albumID" QueryStringField="id" Type="Int32"/>

</SelectParameters>

</asp:ObjectDataSource>

下面的例子演示了一个绑定到DataSet.TableAdapter方法的ObjectDataSource。在后面几个例子中我们将使用这个数据集演示如何使用ASP.NET数据控件实现一个简单的相册应用程序。请注意这个例子中的数据视图使用了一个叫做ImageField的新字段类型来显示照片。我们还要注意,ObjectDataSource中使用的ConvertNullToDBNull会导致空参数值在传递给TableAdapter方法之前被转换为DbNull(必须的)。

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="DataComponentTableAdapters.AlbumsTableAdapter"

SelectMethod="GetAlbumsByOwner" UpdateMethod="Update" ConvertNullToDBNull="true" OldValuesParameterFormatString="original_{0}">

</asp:ObjectDataSource>

<asp:ObjectDataSource ID="ObjectDataSource2" runat="server" TypeName="DataComponentTableAdapters.OwnersTableAdapter" SelectMethod="GetOwners" />查看本文来源

孩子每次睡觉时咳嗽
宝宝流鼻血是什么原因
小孩咳嗽吃什么药
退烧推拿手法图解
猜你会喜欢的
猜你会喜欢的