ASP.NET 2.0数据教程之六十八:在TableAdapters里使用现有的存储过程
储过程,再点Next.
图4:选Products_SelectByCategoryID存储过程. 接下来的画面 询问我们存储过程返回的是哪种类型的数据,以及TableAdapter的方法返回的类 型.比如,如果我们指定返回tabular data(表列数据)的话,该方法将返回一个 ProductsDataTable instance实例;如果我们指定存储过程返回一个单一值(a single value)的话,TableAdapter将返回一个object(对象),该对象由存储过程 返回的第一行的第一列来赋值.由于存储过程Products_SelectByCategoryID将返 回某个category的所有产品,选第一项“Tabular data”,再点 Next. 图5:指定存储过程返回Tabular Data 然后需要指定采用的方法 模式以及方法的名称.同时选中Fill a DataTable” 和 “Return a DataTable”项.将这2个方法重命名为FillByCategoryID和 GetProductsByCategoryID. 点Next,确认无误的话,再点Finish完成设置。 图6:将方法命名为FillByCategoryID 和 GetProductsByCategoryID 注意: 我们刚才添加FillByCategoryID 和 GetProductsByCategoryID方法,执行一个int类型的输入参数,它由 @CategoryID传递进来。如果你要改动Products_SelectByCategory存储过程的参 数的话,你也必须更新这些TableAdapter方法的参数.就像在前一篇文章探讨的一 样,要么手动添加或删除参数集里的参数,要么再次运行TableAdapter向 导. 第三步:在BLL层添加一个GetProductsByCategoryID(categoryID)方 法 设置完DAL层的GetProductsByCategoryID方法后,下一步我们将在业务 逻辑层添加方法以调用该方法.打开ProductsBLLWithSprocs class类的文件,添 加如下方法:
该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) ”. 图7:调用CategoriesBLL Class类的GetCategories方法 图8:在UPDATE, INSERT,和DELETE标签里选“(None) ” 完成ObjectDataSource向导后,我们设置DropDownList控件显示 的是CategoryName列,而传递的Value值为CategoryID列.此时,DropDownList控 件和ObjectDataSource控件的声明代码看起来和下面的差不多:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |