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

ASP.NET 2.0數據教程:給DAL添加定制編碼

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

第六步:給DAL添加定制編碼

添加到強類型DataSet中的TableAdapter和DataTable是在一個XML Schema定義文 件(Northwind.xsd)中定義的。你可以在解決方案資源管理器里在Northwind.xsd 文件上按右鼠標,選擇“查看編碼(View Code)”,打開這個Schema文件來查看其中內容。

Northwinds強類型DataSet的XML Schema定義文件 

圖32:Northwinds強類型DataSet的XML Schema定義文件

這個schema信息在設計時編譯之后會被翻譯成C#或Visual Basic 編碼,或者如果有必要的話,會在運行時翻譯,然后你就能在調試器里單步遍歷執行。想查看這些自動生成的編碼的話,在類視圖里,展開TableAdapter 類或者強類型的DataSet 類。如果在屏幕上看不到類視圖的話,在“查看”(View)菜單里選擇“ 類視圖”,或者按鍵組合Ctrl+Shift+C。在類視圖里,你能看到強類型的DataSet類和TableAdapter類的屬性,方法和事件。想看某個特定的方法的編碼話,在類視圖雙擊對應方法的名字或者在方法上按右鼠標,選擇“移至定義區(Go To Definition)”。

在類視圖里選擇“移至定義區(Go To Definition)”,查看自動生成的編碼 

圖33:在類視圖里選擇“移至定義區(Go To Definition)”,查看自動生成的編碼

雖然自動生成的編碼省時省力,但這樣的編碼往往是非常通用化的(generic),為滿足一個應用程序特有的需求需要做些定制,就是所謂的定制編碼。但擴展自動生成的編碼的風險在于,如果生成這些編碼的工具決定該是重新生成這些編碼的時候了,則會把你定制的編碼沖掉。使用.NET 2.0中的一個新的部分(partial)類的概念,很容易將一個類的定義分寫在幾個文件里。這允許我們給自動生成的類添加我們自己的方法,屬性,和事件,而不用擔心Visual Studio會沖掉我們的定制編碼。

為示范如何定制DAL起見,讓我們來給SuppliersRow 添加一個GetProducts()方法。這個SuppliersRow類代表了Suppliers表的個別記錄,每個供應商(supplier)可以 提供0個到多個產品,所以GetProducts()將返回指定的供應商的這些產品。做法如下,在App_Code文件夾里添加一個新的類文件,將其命名為SuppliersRow.cs,然后在其中添加下列編碼:

C#

  1. using System;  
  2. using System.Data;  
  3. using NorthwindTableAdapters;  
  4.  
  5. public partial class   
  6.  
  7. Northwind  
  8. {  
  9.     public partial class   
  10.  
  11. SuppliersRow  
  12.     {  
  13.         public Northwind.ProductsDataTable GetProducts()  
  14.         {  
  15.             ProductsTableAdapter productsAdapter =  
  16.              new ProductsTableAdapter();  
  17.             return 
  18.               productsAdapter.GetProductsBySupplierID(this.SupplierID);  
  19.         }  
  20.     }  
  21. }  
  22.  

這個部分(partial)類指示編譯器在編譯Northwind.SuppliersRow類時,應該包含我們剛定義的這個GetProducts()方法。如果你編譯你的項目,然后返回類視圖,你就會看到GetProducts()已被列為Northwind.SuppliersRow的一個方法。

GetProducts()方法成為Northwind.SuppliersRow類的一部分 

圖34: 定制編碼:GetProducts()方法成為Northwind.SuppliersRow類的一部分

GetProducts()方法現在就能用來枚舉一個指定供應商的產品列單,如下列編碼所示:

C#

  1. NorthwindTableAdapters.SuppliersTableAdapter   
  2.  
  3. suppliersAdapter = new   
  4.  
  5. NorthwindTableAdapters.SuppliersTableAdapter();  
  6.  
  7. // Get all of the suppliers  
  8. Northwind.SuppliersDataTable suppliers =  
  9.   suppliersAdapter.GetSuppliers();  
  10.  
  11. // Enumerate the suppliers  
  12. foreach (Northwind.SuppliersRow supplier in suppliers)  
  13. {  
  14.     Response.Write("Supplier: " +   
  15.  
  16. supplier.CompanyName);  
  17.     Response.Write("");  
  18.  
  19.     // List the products for this supplier  
  20.     Northwind.ProductsDataTable products = supplier.GetProducts();  
  21.     foreach (Northwind.ProductsRow product in products)  
  22.         Response.Write("" +   
  23.  
  24. product.ProductName + "");  
  25.  
  26.     Response.Write(" ");  
  27. }  
  28.  

This data can also be displayed in any of asp.net's data Web controls. The following page uses a GridView control with two fields:數據也可以在任何一種asp.net的Web控件中顯示。下面這個網頁 使用了含有2個字段的GridView 控件:

一個BoundField用以顯示每個供應商的名字,

另一個TemplateField,包含了一個BulletedList控件,用來綁定針對每個供應商調用 的GetProducts()方法返回的結果

我們將在以后的教程里討論怎樣來顯示這樣的主/從(master-detail)報表。在這里,這個例子的目的是用來示范如何使用添加到Northwind.SuppliersRow類中的自定義的方法的。

SuppliersAndProducts.aspx

asp.net

  1. < %@ Page Language="C#"   
  2.  
  3. AutoEventWireup="true" CodeFile="SuppliersAndProducts.aspx.cs"   
  4.  
  5. Inherits="SuppliersAndProducts" %>  
  6.  
  7. < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0   
  8.  
  9. Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  10.  
  11. < html xmlns="http://www.w3.org/1999/xhtml" >  
  12. < head runat="server">  
  13.     < title>Untitled Pagetitle>  
  14.     < link href="Styles.css"   
  15.  
  16. rel="stylesheet"   
  17.  
  18. type="text/css"   
  19.  
  20. />  
  21. head>  
  22. < body>  
  23.     < form id="form1" runat="server">  
  24.     < div>  
  25.         < h1>  
  26.             Suppliers and Their Productsh1>  
  27.         < p>  
  28.             < asp:GridView ID="GridView1" runat="server" 
  29.              AutoGenerateColumns="False" 
  30.              CssClass="DataWebControlStyle">  
  31.                 < HeaderStyle CssClass="HeaderStyle" />  
  32.                 < AlternatingRowStyle CssClass="AlternatingRowStyle" />  
  33.                 < Columns>  
  34.                     < asp:BoundField DataField="CompanyName" 
  35.                       HeaderText="Supplier" />  
  36.                     < asp:TemplateField HeaderText="Products">  
  37.                         < ItemTemplate>  
  38.                             < asp:BulletedList ID="BulletedList1" 
  39.                              runat="server" DataSource="< %#  
  40.               ((Northwind.SuppliersRow)((System.Data.DataRowView)  
  41.               Container.DataItem).Row).GetProducts() %>"  
  42.                                     DataTextField="ProductName">  
  43.                             asp:BulletedList>  
  44.                         ItemTemplate>  
  45.                     asp:TemplateField>  
  46.                 Columns>  
  47.             asp:GridView>  
  48.              p>  
  49.  
  50.     div>  
  51.     form>  
  52. body>  
  53. html>  

SuppliersAndProducts.aspx.cs

C#

  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Collections;  
  5. using System.Web;  
  6. using System.Web.Security;  
  7. using System.Web.UI;  
  8. using System.Web.UI.WebControls;  
  9. using System.Web.UI.WebControls.WebParts;  
  10. using System.Web.UI.HtmlControls;  
  11. using NorthwindTableAdapters;  
  12.  
  13. public partial class   
  14.  
  15. SuppliersAndProducts : System.Web.UI.Page  
  16. {  
  17.     protected void   
  18.  
  19. Page_Load(object sender, EventArgs e)  
  20.     {  
  21.         SuppliersTableAdapter suppliersAdapter = new 
  22.           SuppliersTableAdapter();  
  23.         GridView1.DataSource = suppliersAdapter.GetSuppliers();  
  24.         GridView1.DataBind();  
  25.     }  
  26. }  
  27.  

供應商的公司名字列在左欄,他們的產品列在右欄 

圖 35: 定制編碼:供應商的公司名字列在左欄,他們的產品列在右欄

總結

構造web應用時,創建DAL應該是你最先做的步驟之一,應該在你開始創建表現層之前進行。使用Visual Studio的話,創建基于強類型DataSet的DAL是個可以不寫一行編碼,在10到15分鐘內就可完成的任務。以后的教程將建立在這個DAL基礎之上。在下一個教程里,我們將定義一堆業務規則,然后看一下如何在一個分開的業務邏輯層里實現這些規則。

【編輯推薦】

  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 16:55:53

添加aspx頁面

2009-07-24 13:08:03

BLL類ASP.NET 2.0

2009-07-24 13:08:52

DataRowASP.NET 2.0

2009-07-24 17:08:31

添加站點地圖asp.net

2009-07-27 03:21:00

breadcrumb導

2009-07-27 09:28:55

TableAdapte

2009-07-27 03:23:00

Default.asp

2009-07-24 13:45:28

添加參數化

2009-07-27 08:51:24

ObjectDataS

2009-07-24 17:15:52

SiteMapData

2009-07-27 16:09:05

GridView顯示數

2009-07-27 09:35:57

業務邏輯層

2009-07-24 12:41:21

BLL類

2009-07-24 16:37:04

創建母版頁asp.net 2.0

2009-07-27 16:22:54

GridView選擇行

2009-07-27 09:01:44

ObjectDataS

2009-07-24 13:25:43

創建數據訪問層

2010-06-25 08:51:46

ASP.NET MVC

2009-07-27 09:20:35

硬編碼參數

2009-07-23 14:43:24

數據源控件ASP.NET 2.0
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天草夜夜骑 | 精品久久久久久久 | 久久免费精品 | 免费a级毛片在线播放 | 欧洲视频一区二区 | 一级特黄在线 | 中文字幕亚洲区一区二 | 一区二区电影 | 婷婷不卡| 免费黄色成人 | 欧美日韩在线成人 | 国产精品久久久久999 | 狠狠躁18三区二区一区 | 国产一区二区三区在线看 | 成人在线观看免费 | 国产视频精品免费 | 久久一区二区三区四区 | 日韩不卡一区二区 | 91小视频在线 | 亚洲福利 | 亚洲成人免费在线 | 国产精品a免费一区久久电影 | 国产小视频精品 | 欧美一二精品 | 日本天天操 | 午夜视频网站 | 日韩精品免费在线观看 | 久久久婷婷| 免费看片在线播放 | 成人国产午夜在线观看 | 欧美高清dvd | 91免费观看 | 中文在线一区二区 | 黄网站涩免费蜜桃网站 | 天堂男人av| 精品久久久久久久久久 | 久久综合狠狠综合久久综合88 | 中文字幕 在线观看 | 日本免费小视频 | 成人免费共享视频 | 国产午夜精品视频 |