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

ASP.NET中的數據源控件

開發 后端
本文介紹ASP.NET中的數據源控件,從根本上說,數據源控件就是包裝了特定數據源的一些基本函數的服務器控件。

在本文中,我將引導您瀏覽ASP.NET 2.0中的主要數據源控件

數據源組件一覽

從根本上說,數據源控件就是包裝了特定數據源(如SQL Server、Microsoft Access或XML文檔)的一些基本函數的服務器控件。這些基本函數包括查詢、插入、更新和刪除。數據源控件不具有UI并且不呈現任何標記(請注意,有許多控件都不具有UI,然而卻呈現標記)。可以用聲明方式或編程方式將其綁定到數據控件。通過數據源組件的服務,數據綁定控件除了可以從特定數據源獲取數據以外,還可以插入新記錄或者更新和刪除現有記錄。控件的接口總是相同的,無論您使用哪種特定的數據源(即,無論是SQL Server數據庫、XML文檔、Microsoft Excel工作表還是站點圖描述)。

數據源對象是自描述性的,并且能夠讓綁定控件了解基礎數據源中受支持的功能。這樣,控件就可以方便地基于它所連接的數據源的功能來調整它自己的用戶界面。例如,網格組件可以僅在基礎數據源可編輯時才顯示Edit列。
數據源控件是ASP.NET 2.0數據綁定模型中迄今為止最為重要的更改。在ASP.NET 2.0中,數據源控件是推薦的用于執行數據綁定的工具。需要注意的是,數據源控件與公開IEnumerable接口的對象一起工作。在數據驅動的應用程序中,數據源控件絕不會取代DataView和數組。而且,可以保證向后兼容性。使用數據源控件,您現在就具有了一種將數據綁定到任何新增和現有數據綁定控件的備用方法。數據源控件不會帶來任何性能問題,性能基本與版本1.x中的相同甚至略高一籌。

ASP.NET 2.0向所有數據綁定控件中添加了一個新屬性,以便每個控件都可以成功地綁定到數據源控件。應該將這一新屬性—DataSourceId—設置為在同一頁面中定義的數據源控件的名稱。下面的代碼片段顯示了如何用針對SQL Server數據庫執行的查詢結果來填充DataGrid控件:

  1. <asp:SqlDataSource 
  2. runat="server" 
  3. ID="MySource" 
  4. ConnectionString="...;" 
  5. DataSourceMode="DataSet" 
  6. SelectCommand="..." 
  7. /> 
  8. <asp:DataGrid 
  9. runat="server" 
  10. ID="data" 
  11. DataSourceId="MySource" 
  12. /> 

SqlDataSource是公開SQL關系數據庫內容的數據源控件。(需要注意的是,SqlDataSource不是特定于SQL Server的,但有關該問題的詳細信息留待稍后討論。)ConnectionString屬性標識源數據庫,而SelectCommand屬性被設置為查詢字符串。正如前面所提到的,您可以使用傳統的DataSource屬性或新的DataSourceId屬性將數據傳遞給數據綁定控件。請注意,這兩個屬性是互斥的。如果您同時設置這兩個屬性,將會引發異常。

通過使用數據源控件而不是傳統的可枚舉對象,您會得到什么呢?首先,您可以在.aspx頁中使用一個簡單的標記來聲明數據源。這樣可以實現數據源對象的自動實例化,并減少為完整設置該頁面而需要編寫的代碼數量。您不再需要顯式地操縱如SqlConnection和SqlCommand這樣的對象。數據源減少了對服務器數據組件(連接、適配器、類型化數據集)的依賴性,這是因為這些組件極度依賴于Visual Studio .NET的代碼生成功能。在Visual Studio 2005中,被隔離在don't-change-this-code(不要更改以下代碼)區域中的自動生成的代碼數量明顯減少。這并不意味著要丟棄設計時功能,而是剛好相反。數據源控件促成了控件和數據組件之間的直接和隱式綁定。通過這一體系結構,可以開發智能設計器,以便動態發現架構和數據,從而更為準確地表示數據綁定控件的運行時外觀。

至少對于常見方案(如選擇、排序、分頁、刪除和基本更新)而言,您可以通過簡單地連接和配置一對控件來設置數據綁定。圖2顯示了Visual Studio 2005工具箱的Data選項卡。它包含了一些數據源控件和數據綁定控件—您在許多情況下需要涉及的唯一工具。如果是這種情況,您的頁面幾乎不需要任何數據綁定代碼。盡管如此,由于頁面需要更為復雜的數據綁定功能,因此需要您添加少量代碼。

通過數據源控件,可以在多種數據源中實現一致的綁定模型。(圖2中的控件只是將在ASP.NET 2.0發布時可用的控件的子集。)作為頁面開發人員,您將使用相同的屬性,而無論數據源是關系表(無論是哪種數據庫系統)、XML文檔、自定義類還是Excel文件。

您通過使用數據源控件而得到的另一項優勢與數據緩存有關。許多關于ASP.NET編碼策略和優化的書籍和文章都將緩存數據列為構建高性能、可伸縮Web應用程序的最佳做法。毫無疑問,數據緩存意味著關鍵的性能增強,即使它不是對所有頁面和應用程序都有效的魔杖。例如,當您管理大量特定于會話的不穩定數據時,或者當您的要求規定必須始終顯示新數據時,廣泛使用緩存可能不是最佳的方法。請放心,在大多數情況下,緩存數據都是一種改進應用程序的方法。

數據源控件也集成了緩存功能,并且打開和關閉默認緩存功能與設置Boolean屬性一樣容易。緩存對于數據綁定控件而言是透明的,并且數據源控件會管理它的某些方面,如生成緩存密鑰和過期策略(時間和密鑰依賴時間戳)。其他設置由頁面開發人員來決定,包括數據在緩存中的生存期。請注意,數據源控件可為每個獨特的連接字符串、選擇查詢、參數和緩存設置組合維護單獨的緩存。

還應該注意的一個方面是,某些數據源控件(尤其是SqlDataSource)支持數據緩存過期,即能夠檢測數據庫更改并使當前緩存的數據過期。稍后,您將會看到,該功能要求基礎SQL存儲區提供特定的支持。

使用數據源控件而不是傳統的可枚舉對象顯然有許多優點,下面讓我們考察一下它的某些缺點。正如曾經提到的那樣,在ASP.NET 2.0中,每個數據綁定控件都支持雙重API以便進行數據綁定。這些API彼此幾乎完全隔離,基本上沒有共同點。乍看起來,似乎數據源控件支持無代碼綁定,并且只需通過指向和單擊操作就可以完成可視化編程。勿庸置疑,您無需編寫任何代碼就可以創建數據驅動的頁面。但是,這并不意味著數據綁定控件不允許您掛鉤內部事件。新的體系結構具有更高的自動化程度,但它保留了ASP.NET 1.x中使用的顯式數據綁定模型的所有方面。

總而言之,這兩種模型之間的主要區別在于:當執行數據訪問時,數據源控件將充當代理。如果活動的數據源對象對于您的應用程序至關重要,請考慮為每個受支持的數據操作激發一對操作前和操作后事件(如Deleting/Deleted事件)。這會給予您與ASP.NET 1.x中完全相同的數據流控制權,但這次是通過簡單得多且更為緊湊的語法實現的。

最后,請記住數據源控件只是一組類。因此,您可以對它們進行完全的控制,并以編程方式實例化和操縱它們。這樣做的時候,您將數據源控件用作在原始 ADO.NET類之上工作的更為抽象的API。在某種程度上,數據源控件代表著Data Application塊的發展,后者是為.NET Framework 1.x引入的API,目的是實現常見的ADO.NET最佳做法,并且減少您需要編寫的代碼。

【編輯推薦】

  1. ASP.NET的DataList和Repeater控件
  2. 淺析ASP.NET的IIS映射
  3. 概述ASP.NET狀態類型
  4. 淺談ASP.NET和Web服務器
  5. ASP.NET的EnableViewState屬性
責任編輯:佚名 來源: IT168
相關推薦

2009-07-23 14:43:24

數據源控件ASP.NET 2.0

2009-08-07 16:18:08

ASP.NET2.0數

2009-09-11 09:09:00

ASP.NETAdRotator控件

2009-07-20 13:32:24

ScriptManagASP.NET

2009-07-20 13:54:31

ScriptManagASP.NET AJA

2009-07-21 17:18:26

UpdateProgrASP.NET AJA

2009-07-27 13:52:36

Panel控件ASP.NET

2009-07-27 13:20:19

HTML Map控件ASP.NET

2009-07-23 16:44:51

AdRotator控件ASP.NET

2009-07-27 14:50:24

ChartAreas控ASP.NET 3.5

2009-07-30 12:42:19

html控件和web控

2009-01-08 10:20:56

AutoCompletAjaxASP.NET

2009-08-04 15:20:59

ASP.NET數據驗證數據驗證控件

2009-07-24 17:15:52

SiteMapData

2009-08-07 15:34:15

ASP.NET數據綁定

2009-08-04 11:29:14

HTML代碼ASP.NET控件

2009-07-29 13:50:26

UpdatePanelASP.NET

2009-08-05 15:57:03

ASP.NET控件ID

2009-08-19 13:44:00

ASP.NET Lis

2009-08-04 10:43:59

ASP.NET控件開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线观看一区二区 | 开操网| 91日b| 久久综合九色综合欧美狠狠 | tube国产 | 91麻豆精品国产91久久久更新资源速度超快 | 精品国产一区二区三区四区在线 | 热re99久久精品国产99热 | 久久69精品久久久久久久电影好 | 久久久一区二区 | 久久久人成影片一区二区三区 | 久久久久久久一区 | www.国产精品| 涩在线 | www.狠狠干| 成人不卡视频 | av入口| 欧美精品一区二区在线观看 | 久久亚洲二区 | 一级黄色毛片免费 | 成人区精品一区二区婷婷 | 国产精品一区二区三区在线播放 | 国产在线精品一区二区三区 | 欧美成人精品一区二区男人看 | 日本a∨精品中文字幕在线 亚洲91视频 | 中文字幕亚洲一区 | 在线免费观看色 | 久久一区二区精品 | av电影一区二区 | 亚洲色在线视频 | 午夜精品久久久久久久久久久久 | 韩日一区二区 | 日韩免费一级 | 二区三区视频 | 日韩一区二区av | 亚洲视频精品 | 国产成人亚洲精品 | 精品久久精品 | 黄片毛片免费看 | 国产免国产免费 | 日韩一区二区在线播放 |