在ASP.NET 2.0中操作数据之十六:概述插入、更新和(2)

  因为GridView、DetailsView和FormView控件在数据修改功能和版面上都有所不同,就让我们逐个研究。不过,与其让这三个控件各自使用自己的ObjectDataSource,还不如让我们仅创建一个ObjectDataSource让这个三个控件的例子共用。
打开Basics.aspx页面,从工具箱拖拽一个ObjectDataSource到设计器,从它的职能标记中点击配置数据源链接。因为ProductsBLL类是唯一一个提供修改、插入和删除方法的BLL类,配置该ObjectDataSource使用这个类。

/uploads/allimg/200612/1K92135D_0.png

图 5: 配置ObjectDataSource使用ProductsBLL类

  在下一屏中,通过选择适当的tab页并从下拉列表中选择方法,我们可以指定ProductsBLL类里的哪些方法被映射到ObjectDataSource的Select()、Insert()、Update()和Delete()方法。图6,至今我们应该很熟悉,映射ObjectDataSource的Select()方法到ProductsBLL类的GetProducts()方法。Insert()、Update()和Delete()方法可以通过选择上方的适当的tab页进行配置。

/uploads/allimg/200612/1K921b20_0.png

图 6: 让这个ObjectDataSource返回所有产品

  图7、8和9显示ObjectDataSource的UPDATE、INSERT,和DELETE 的tab页。配置它们从而Insert()、Update()和Delete()方法分别调用ProductsBLL类的UpdateProduct、AddProduct和DeleteProduct方法。

https://img.jbzj.com/file_images/article/201605/2016050617555497.png

图 7: 映射ObjectDataSource的Update()方法到ProductBLL类的UpdateProduct方法

/uploads/allimg/200612/1K9229258_0.png

图 8: 映射ObjectDataSource的Insert()方法到ProductBLL类的AddProduct方法

/uploads/allimg/200612/1K9223493_0.png

图 9: 映射ObjectDataSource的Delete()方法到ProductBLL类的DeleteProduct方法

  你也许已经注意到在UPDATE、INSERT和DELETE的tab页里的下拉列表中已经选择了各自的方法。这是由于我们使用了DataObjectMethodAttribute,它修饰了ProducstBLL类。例如,DeleteProduct方法是如下这样子声明的:

[System.ComponentModel.DataObjectMethodAttribute (System.ComponentModel.DataObjectMethodType.Delete, true)] public bool DeleteProduct(int productID) { ... }

DataObjectMethodAttribute指示每一个方法的目的–是否为了查询、插入、更新或删除–

是否它的默认值。如果你在创建BLL类的时候省略了这些属性,现在你将需要手工从UPDATE、INSERT和DELETE的tab页里手工选择方法。

当确认已经适当的ProductsBLL方法映射到ObjectDataSource的Insert()、Update()和Delete()方法后,点击完成结束此向导。
检查ObjectDataSource的标记

在通过数据源配置向导完成了对ObjectDataSource的配置之后,到源视图去检查一下生成的声明标记。

<asp:ObjectDataSource>标签列明了隐含的对象和需要调用的方法。另外,还有DeleteParameters、UpdateParameters和InsertParameters ,它们映射ProductsBLL类的AddProduct、UpdateProduct和DeleteProduct方法的输入参数:

<asp:ObjectDataSource runat="server" DeleteMethod="DeleteProduct" InsertMethod="AddProduct" OldValuesParameterFormatString="original_{0}" SelectMethod="GetProducts" TypeName="ProductsBLL" UpdateMethod="UpdateProduct"> <DeleteParameters> <asp:Parameter Type="Int32" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Type="String" /> <asp:Parameter Type="Int32" /> <asp:Parameter Type="Int32" /> <asp:Parameter Type="String" /> <asp:Parameter Type="Decimal" /> <asp:Parameter Type="Int16" /> <asp:Parameter Type="Int16" /> <asp:Parameter Type="Int16" /> <asp:Parameter Type="Boolean" /> <asp:Parameter Type="Int32" /> </UpdateParameters> <InsertParameters> <asp:Parameter Type="String" /> <asp:Parameter Type="Int32" /> <asp:Parameter Type="Int32" /> <asp:Parameter Type="String" /> <asp:Parameter Type="Decimal" /> <asp:Parameter Type="Int16" /> <asp:Parameter Type="Int16" /> <asp:Parameter Type="Int16" /> <asp:Parameter Type="Boolean" /> </InsertParameters> </asp:ObjectDataSource>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjwwpj.html