在ASP.NET 2.0中操作数据之六十五:在TableAdapters中(7)

  该类和以前章节所创建的ProductsBLL class类差不多,只是它用的是数据集 NorthwindWithSprocs的ProductsTableAdapter 和 ProductsDataTable object对象。与ProductsBLL类使用using NorthwindTableAdapters不同,ProductsBLLWithSprocs类使用的是using NorthwindWithSprocsTableAdapters.同样的,该类的ProductsDataTable和 ProductsRow对象使用的是NorthwindWithSprocs命名空间.我们的ProductsBLLWithSprocs class类提供了2种数据访问方法GetProducts() 和GetProductByProductID().另外,还有添加、更新、删除单个产品的方法.

第七步:在表现层出来数据集NorthwindWithSprocs

  此时,我们以及对数据访问层和业务逻辑层做了相关改动,接下来我们要创建一个ASP.NET页面调用BLL的ProductsBLLWithSprocs class类以展示、更新、删除记录.

  打开AdvancedDAL文件夹里的NewSprocs.aspx页面,从工具箱拖一个GridView控件到页面,设置其ID为Products. 从GridView的智能标签将其绑定到一个名为ProductsDataSource的ObjectDataSource,设置其调用ProductsBLLWithSprocs类.

/uploads/allimg/200612/1H9141445_0.png


图22:设置ObjectDataSource调用ProductsBLLWithSprocs类

  SELECT标签的下拉列表里有2个方法,GetProducts()和GetProductByProductID().由于我们将在GridView里显示所有的产品,所以我们选GetProducts()方法.在UPDATE, INSERT, 和DELETE标签里都只有一个方法,确保选中它们,点Finish按钮。

  完成设置后,Visual Studio会向GridView添加BoundFields列以及一个CheckBoxField列, 启用GridView控件的“编辑”和“删除”功能.

/uploads/allimg/200612/1HZL4K_0.png


图23:页面包含一个可以分页和排序的GridView控件.

  就像在以前的教程里探讨过的一样,完成ObjectDataSource的设置后,Visual Studio 会自动的将OldValuesParameterFormatString属性设置为“original_{0}”. 为使数据修改功能正常工作,要么将该属性删除,要么将其设置为“{0}”.

  在我们完成设置、启用“编辑”和“删除”功能、将OldValuesParameterFormatString属性设为其默认值后,页面的声明代码看起来应该和下面的差不多:

<asp:GridView runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID" DataSourceID="ProductsDataSource"> <Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> <asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False" ReadOnly="True" SortExpression="ProductID" /> <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" /> <asp:BoundField DataField="SupplierID" HeaderText="SupplierID" SortExpression="SupplierID" /> <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" SortExpression="CategoryID" /> <asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit" SortExpression="QuantityPerUnit" /> <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" /> <asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" SortExpression="UnitsInStock" /> <asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" SortExpression="UnitsOnOrder" /> <asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" SortExpression="ReorderLevel" /> <asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" SortExpression="Discontinued" /> </Columns> </asp:GridView> <asp:ObjectDataSource runat="server" DeleteMethod="DeleteProduct" InsertMethod="AddProduct" SelectMethod="GetProducts" TypeName="ProductsBLLWithSprocs" 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/wjwyzf.html