快速业务通道

ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
储过程,再点Next.

ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程

图4:选Products_SelectByCategoryID存储过程.

接下来的画面 询问我们存储过程返回的是哪种类型的数据,以及TableAdapter的方法返回的类 型.比如,如果我们指定返回tabular data(表列数据)的话,该方法将返回一个 ProductsDataTable instance实例;如果我们指定存储过程返回一个单一值(a single value)的话,TableAdapter将返回一个object(对象),该对象由存储过程 返回的第一行的第一列来赋值.由于存储过程Products_SelectByCategoryID将返 回某个category的所有产品,选第一项“Tabular data”,再点 Next.

ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程

图5:指定存储过程返回Tabular Data

然后需要指定采用的方法 模式以及方法的名称.同时选中Fill a DataTable” 和 “Return a DataTable”项.将这2个方法重命名为FillByCategoryID和 GetProductsByCategoryID. 点Next,确认无误的话,再点Finish完成设置。

ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程

图6:将方法命名为FillByCategoryID 和 GetProductsByCategoryID

注意:

我们刚才添加FillByCategoryID 和 GetProductsByCategoryID方法,执行一个int类型的输入参数,它由 @CategoryID传递进来。如果你要改动Products_SelectByCategory存储过程的参 数的话,你也必须更新这些TableAdapter方法的参数.就像在前一篇文章探讨的一 样,要么手动添加或删除参数集里的参数,要么再次运行TableAdapter向 导.

第三步:在BLL层添加一个GetProductsByCategoryID(categoryID)方 法

设置完DAL层的GetProductsByCategoryID方法后,下一步我们将在业务 逻辑层添加方法以调用该方法.打开ProductsBLLWithSprocs class类的文件,添 加如下方法:

[System.ComponentModel.DataObjectMethodAttribute
   (System.ComponentModel.DataObjectMethodType.Select, false)]
public NorthwindWithSprocs.ProductsDataTable GetProductByCategoryID(int categoryID)
{
  return Adapter.GetProductsByCategoryID (categoryID);

该BLL层方法仅仅通过ProductsTableAdapter的 GetProductsByCategoryID()方法来返回ProductsDataTable。由于使用了 DataObjectMethodAttribute属性,我们使用ObjectDataSource的设置数据源向导 时,该方法会出现在SELECT标签的下拉列表中.

第四步:展示产品

为测试新添加的Products_SelectByCategoryID存储过程,以及DAL 和 BLL层里的 对应的方法, 我们将创建一个ASP.NET页面,该页面包含一个DropDownList控件 以及一个 GridView控件.DropDownList控件列出数据库里所有的category,当选 定某个category时,我们将在GridView里将属于该category的所有product展示出 来.

注意:

我们在前面的文章里用DropDownList控件创建过主/从 报表,更多细节请参考第7章《 Master/Detail Filshe With a DropDownList》

打开AdvancedDAL文件夹里的ExistingSprocs.aspx页面,从工具箱里拖一 个DropDownList控件到页面,设置其ID为Categories,AutoPostBack属性为true. 接下来,在其智能标签里将其绑定到一个名为CategoriesDataSource的 ObjectDataSource控件.设置该控件调用CategoriesBLL class类的GetCategories 方法,而在UPDATE, INSERT, 以及DELETE标签里选“(None) ”.

ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程

图7:调用CategoriesBLL Class类的GetCategories方法

ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程

图8:在UPDATE, INSERT,和DELETE标签里选“(None) ”

完成ObjectDataSource向导后,我们设置DropDownList控件显示 的是CategoryName列,而传递的Value值为CategoryID列.此时,DropDownList控 件和ObjectDataSource控件的声明代码看起来和下面的差不多:

<asp:DropDownList ID="Categories" runat="server" AutoPostBack="True"
   Data

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号