程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0數據教程之七十:為DataTable添加額外的列

ASP.NET 2.0數據教程之七十:為DataTable添加額外的列

編輯:關於ASP.NET

返回“ASP.NET 2.0數據教程目錄”

導言:

當向類型化的數據集(Typed DataSet)添加一個TableAdapter時 ,相應的DataTable的構架已經由TableAdapter的主查詢定義好了.比如,如果主 查詢返回A, B,C這3個域,那麼 DataTable將有對應的3個列A, B,和C.除了主查詢 以外,TableAdapter還可以包含其他的查詢,可能是返回基於某些參數的數據。 比如,ProductsTableAdapter的主查詢返回所有產品的信息,此外, ProductsTableAdapter還包含諸如GetProductsByCategoryID(categoryID) 和 GetProductByProductID(productID)的方法,它們根據指派的參數返回特定的產 品信息.

如果TableAdapter的方法返回的列涵蓋在主查詢裡,工作起來沒 有問題。但如果返回的列並沒有涵蓋在主查詢,那麼我們就需要對DataTable的構 架進行擴充.在第35章《Master/Detail Using a Bulleted List of Master Records with a Details DataList》裡,我們向CategoriesTableAdapter添加方 法以返回 CategoryID, CategoryName, Description和NumberOfProducts列。其 中前3列是涵蓋在主查詢裡的,而NumberOfProducts列沒有在主查詢裡定義,它返 回的是每個category相關產品的數目.我們可以向CategoriesDataTable手工添加 一列,以便於統計從新方法返回的NumberOfProducts列的值.

在第54章 《Uploading Files》我們探討過,對使用ad-hoc SQL statements構建且其方法 返回的列超出主查詢范圍的TableAdapters必須多加留意.因為一旦重新運行設置 向導的話,它將對TableAdapter的方法進行更新,使其返回的列與主查詢相匹配. 不過如果使用存儲過程的話就不會出現這種情況.

在本文我們將考察如何 擴展DataTable的構架以包含額外的列。我們都知道使用ad-hoc SQL statements 構架的TableAdapter不穩定,本文我們將用存儲過程來構架.你可以參考第67章《 the Creating New Stored Procedures for the Typed DataSet’s TableAdapters》和第68章《Using Existing Stored Procedures for the Typed DataSet’s TableAdapters》來獲取設置TableAdapter使用存儲過程的更多 信息.

第一步:向ProductsDataTable添加一個PriceQuartile列

在 第67章裡我們創建了一個名為NorthwindWithSprocs的類型化的數據集.該數據集 目前包含2個DataTables:ProductsDataTable以及 EmployeesDataTable。

其中ProductsTableAdapter包含3個方法:

.GetProducts——主查詢,返回Products表的所有記錄

.GetProductsByCategoryID(categoryID)——根據指定的 categoryID值返回所有產品

.GetProductByProductID(productID) ——根據指定的productID值返回所有的產品

主查詢及另外2個 方法都返回相同的數據列,也就是Products表的所有列,並沒有返回Categories 以及Suppliers表的相關數據.

在本文,我們將向ProductsTableAdapter添 加一個名為GetProductsWithPriceQuartile 的方法,它返回所有的產品.除了標 准的數據列外,它還返回PriceQuartile列,它用四分位數來衡量產品價格下跌程 度.如果產品價格上升了25%,那麼其值為1,如果下降為25%,那麼其值為4.在我 們創建一個存儲過程來返回這種信息之前,我們首先需要更新ProductsDataTable ,新添一列來包含GetProductsWithPriceQuartile方法返回的 PriceQuartile 值.

打開NorthwindWithSprocs數據集,在ProductsDataTable上右鍵單擊 ,選擇“ Add” ,再選擇“Column”.

圖1:向ProductsDataTable新添一列

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved