当前位置:首页 > ASP.NET2.0数据操作之创建数据访问层(4)

ASP.NET2.0数据操作之创建数据访问层(4)

点击次数:1117  更新日期:2010-12-25
\n

第五步:完成数据访问层

  注意,ProductsTableAdapters类从Products表中返回的 是CategoryID和SupplierID的值,但并不包括Categories表 的CategoryName字段和Suppliers表的CompanyName字段,尽管当 我们显示产品信息时,这些很可能是我们想要显示的字段。我们可以扩充TableAdapter的起始方 法GetProducts()来包含CategoryName和CompanyName字段的值, 这方法进而会更新强类型的DataTable来包括这些新的字段。

  但这会造成一个问题,因为TableAdapter的插入,更新,删除数据的方法是基于这个起始方法的,幸运的是, 自动生成的插入,更新,删除方法并不会受SELECT子句中的子查询的影响。如果我们注意把 对Categories和Suppliers的查询添加成子查询,而不是用JOIN语 句的话,我们可以避免重做这些修改数据的方法。在ProductsTableAdapter中的GetProducts()方法上按右鼠标,选择“配置”,然后,把SELECT子句改成:


\n


\n

\n


\n
\n
\n
\n
SQL
1
\n2
\n3
\n4
\n5
\n6
\n7
\n
SELECT     ProductID, ProductName, SupplierID, CategoryID,
\nQuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued,
\n(SELECT CategoryName FROM Categories
\nWHERE Categories.CategoryID = Products.CategoryID) as CategoryName,
\n(SELECT CompanyName FROM Suppliers
\nWHERE Suppliers.SupplierID = Products.SupplierID) as SupplierName
\nFROM Products
\n

\n