成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET 2.0數據教程:完成數據訪問層

開發 后端
本文介紹了在asp.net 2.0中如何創建一個數據訪問層(DAL)的第五步:完成數據訪問層。

第五步:完成數據訪問層

注意,ProductsTableAdapters類從Products表中返回的是CategoryID和SupplierID的值,但并不包括Categories表 的CategoryName字段和Suppliers表的CompanyName字段,盡管當我們顯示產品信息時,這些很可能是我們想要顯示的字段。我們可以擴充TableAdapter的起始方法GetProducts()來包含CategoryName和CompanyName字段的值,這方法進而會更新強類型的DataTable來包括這些新的字段。

但這會造成一個問題,因為TableAdapter的插入,更新,刪除數據的方法是基于這個起始方法的,幸運的是,自動生成的插入,更新,刪除方法并不會受SELECT子句中的子查詢的影響。如果我們注意把對Categories和Suppliers的查詢添加成子查詢,而不是用JOIN語 句的話,我們可以避免重做這些修改數據的方法。在ProductsTableAdapter中的GetProducts()方法上按右鼠標,選擇“配置”,然后,把SELECT子句改成:

SQL 

  1. SELECT     ProductID, ProductName, SupplierID, CategoryID,  
  2. QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued,  
  3. (SELECT CategoryName FROM Categories  
  4. WHERE Categories.CategoryID = Products.CategoryID) as CategoryName,  
  5. (SELECT CompanyName FROM Suppliers  
  6. WHERE Suppliers.SupplierID = Products.SupplierID) as SupplierName  
  7. FROM         Products  

更新GetProducts()方法的SELECT語句 

圖29: 更新GetProducts()方法的SELECT語句

在更新GetProducts()方法使用這個新查詢語句之后,對應的DataTable將包含2個新字段,CategoryName和SupplierName。

 Products DataTable多了2個新字段

圖30: Products DataTable多了2個新字段

花點時間把GetProductsByCategoryID(categoryID)方法中的SELECT 子句也更新一下。

如果你使用JOIN句法更新GetProducts()中的SELECT語句的話 ,DataSet設計器不能使用DB直接模式自動生成插入,更新,以及刪除數據庫記錄的方法。你必須手工生成這 些方法,就象本教程早先時候我們對InsertProduct方法的做法一樣。此外,你必須手工提供InsertCommand,UpdateCommand和DeleteCommand屬性值,假如你想使用批更新模式的話。

完成數據訪問層:添加其他的TableAdapter

到目前為止,我們只討論了針對單個數據表的單個TableAdapter。但是,Northwind數據庫里含有我們需要在我們的web應用中使用的幾個相關的表。一個強類型的DataSet可以包含多個相關的DataTable。因此,為了完成我們的DAL,我們需要為這些我們將來要用到的數據表添加相應的DataTable。步驟如下,打開 DataSet設計 器,在設計器上按右鼠標,選擇“添加/TableAdapter”。這會生成一個新的DataTable和TableAdapter,然后我們早先討論過的配置向導會指引你完成配置。

花上幾分鐘,創建對應于下列查詢的TableAdapter及其方法。注意,ProductsTableAdapter的查詢中包含了用以獲取每個產品的分類和供應商名字的子查詢。另外,如果你是隨著教程在做的話,你已經添加過ProductsTableAdapter類的GetProducts()和GetProductsByCategoryID(categoryID)方法了。

  1. ProductsTableAdapter  
  2. GetProducts:  
  3. SELECT ProductID, ProductName, SupplierID, CategoryID,  
  4. QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder,  
  5. ReorderLevel, Discontinued , (SELECT CategoryName FROM 
  6. Categories WHERE Categories.CategoryID =  
  7. Products.ProductID) as CategoryName, (SELECT CompanyName  
  8. FROM Suppliers WHERE Suppliers.SupplierID =  
  9. Products.SupplierID) as SupplierName  
  10. FROM Products  
  11. GetProductsByCategoryID:  
  12. SELECT ProductID, ProductName, SupplierID, CategoryID,  
  13. QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder,  
  14. ReorderLevel, Discontinued , (SELECT CategoryName FROM 
  15. Categories WHERE Categories.CategoryID =  
  16. Products.ProductID) as CategoryName,  
  17. (SELECT CompanyName FROM Suppliers WHERE 
  18. Suppliers.SupplierID = Products.SupplierID) as SupplierName  
  19. FROM Products  
  20. WHERE CategoryID = @CategoryID  
  21. GetProductsBySupplierID  
  22. SELECT ProductID, ProductName, SupplierID, CategoryID,  
  23. QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder,  
  24. ReorderLevel, Discontinued ,  
  25. (SELECT CategoryName FROM Categories WHERE 
  26. Categories.CategoryID = Products.ProductID)  
  27. as CategoryName, (SELECT CompanyName FROM Suppliers  
  28. WHERE Suppliers.SupplierID = Products.SupplierID)  
  29. as SupplierName  
  30. FROM Products  
  31. WHERE SupplierID = @SupplierID  
  32. GetProductByProductID  
  33. SELECT ProductID, ProductName, SupplierID, CategoryID,  
  34. QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder,  
  35. ReorderLevel, Discontinued , (SELECT CategoryName  
  36. FROM Categories WHERE Categories.CategoryID =  
  37. Products.ProductID) as CategoryName,  
  38. (SELECT CompanyName FROM Suppliers  
  39. WHERE Suppliers.SupplierID = Products.SupplierID)  
  40. as SupplierName  
  41. FROM Products  
  42. WHERE ProductID = @ProductID  
  43.    
  44. CategoriesTableAdapter  
  45. GetCategories  
  46. SELECT CategoryID, CategoryName, Description  
  47. FROM Categories  
  48. GetCategoryByCategoryID  
  49. SELECT CategoryID, CategoryName, Description  
  50. FROM Categories  
  51. WHERE CategoryID = @CategoryID  
  52.    
  53. SuppliersTableAdapter  
  54. GetSuppliers  
  55. SELECT SupplierID, CompanyName, Address, City,  
  56. Country, Phone  
  57. FROM Suppliers  
  58. GetSuppliersByCountry  
  59. SELECT SupplierID, CompanyName, Address,  
  60. City, Country, Phone  
  61. FROM Suppliers  
  62. WHERE Country = @Country  
  63. GetSupplierBySupplierID  
  64. SELECT SupplierID, CompanyName, Address,  
  65. City, Country, Phone  
  66. FROM Suppliers  
  67. WHERE SupplierID = @SupplierID  
  68.    
  69. EmployeesTableAdapter  
  70. GetEmployees  
  71. SELECT EmployeeID, LastName, FirstName,  
  72. Title, HireDate, ReportsTo, Country  
  73. FROM Employees  
  74. GetEmployeesByManager  
  75. SELECT EmployeeID, LastName, FirstName,  
  76. Title, HireDate, ReportsTo, Country  
  77. FROM Employees  
  78. WHERE ReportsTo = @ManagerID  
  79. GetEmployeeByEmployeeID  
  80. SELECT EmployeeID, LastName, FirstName,  
  81. Title, HireDate, ReportsTo, Country  
  82. FROM Employees  
  83. WHERE EmployeeID = @EmployeeID  

添加了四個TableAdapter后的DataSet設計器 

圖31:完成數據訪問層:添加了四個TableAdapter后的DataSet設計器

【編輯推薦】

  1. 如何在IIS6.0中部署asp.net mvc程序
  2. 用Winform傻瓜式搭建asp.net mvc框架
  3. ASP.NET Session失效的編程思路
  4. ASP.NET Session 狀態的存儲
  5. 了解ASP.NET Web應用程序模型
責任編輯:book05 來源: 博客堂
相關推薦

2009-07-24 13:25:43

創建數據訪問層

2009-08-19 10:54:42

ASP.NET數據訪問

2009-07-24 13:45:28

添加參數化

2009-07-27 16:09:05

GridView顯示數

2009-07-24 17:15:52

SiteMapData

2009-07-27 09:35:57

業務邏輯層

2009-07-24 13:07:59

BLL類

2009-08-04 10:17:55

ASP.NET SqlASP.NET數據訪問

2009-07-24 17:08:31

添加站點地圖asp.net

2009-07-24 12:41:21

BLL類

2009-07-24 16:37:04

創建母版頁asp.net 2.0

2009-07-27 03:21:00

breadcrumb導

2009-07-27 16:22:54

GridView選擇行

2009-07-27 09:01:44

ObjectDataS

2009-07-20 17:12:17

ASP.NET訪問數據

2009-07-27 09:28:55

TableAdapte

2009-07-23 14:43:24

數據源控件ASP.NET 2.0

2009-07-27 09:39:04

SelectMetho

2009-07-28 14:06:28

ASP.NET 2.0

2009-07-22 17:21:27

ASP.NET 2.0
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久网站 | 中文字字幕一区二区三区四区五区 | 国产不卡视频 | 日韩最新网站 | 亚洲欧美日韩在线不卡 | jlzzjlzz国产精品久久 | 亚洲第一天堂 | 欧美激情综合 | 精品久久久久久亚洲精品 | 欧美精品一区在线 | 黄a大片 | 黄色网毛片| 亚洲激精日韩激精欧美精品 | 九九九久久国产免费 | 欧美综合精品 | 天天干com| 91成人免费观看 | 欧美韩一区二区 | 日本成人久久 | 国产精品美女久久久久久久久久久 | 在线看91 | 日韩精品一区二区在线 | 日韩a在线 | www.v888av.com | 伊人久久一区二区 | 国产粉嫩尤物极品99综合精品 | 黄色网址av | 国产在线播 | 国产成人精品综合 | 超碰在线播 | 亚洲精品免费观看 | 久久国产精品网 | 看av网址 | 欧美一区二区三区高清视频 | 99综合 | 国产日韩欧美在线 | 99精品久久| 亚洲国产精品一区二区第一页 | 少妇一级淫片aaaaaaaaa | 国产精品久久久久久久久免费相片 | 成人欧美一区二区三区黑人孕妇 |