溫故知新ASP.NET 2.0(C#)(8) - DataSourceControl

作者: webabcd  來源: 博客園  發布時間: 2008-09-16 18:05  閱讀: 3160 次  推薦: 0   原文鏈接   [收藏]  

系列文章導航:

溫故知新ASP.NET 2.0(C#)(1) - MasterPage(母版頁)

溫故知新ASP.NET 2.0(C#)(1) - MasterPage(母版頁)

溫故知新ASP.NET 2.0(C#)(2) - Themes(主題)

溫故知新ASP.NET 2.0(C#)(3) - SiteMap(站點地圖)

溫故知新ASP.NET 2.0(C#)(4) - 緩存&SqlCacheDependency

溫故知新ASP.NET 2.0(C#)(5) - Localization

溫故知新ASP.NET 2.0(C#)(8) - DataSourceControl

溫故知新ASP.NET 2.0(C#)(6) - Membership&RoleManager

溫故知新ASP.NET 2.0(C#)(7) - Profile

溫故知新ASP.NET 2.0(C#)(8) - DataSourceControl

 

介紹
  在 ASP.NET 2.0 中有幾個新的數據源控件,例如,SqlDataSource、ObjectDataSource、XmlDataSource、AccessDataSource 和 SiteMapDataSource。它們全都可以用來從它們各自類型的數據源中檢索數據,并且可以綁定到各種數據綁定控件。數據源控件減少了為檢索和綁定數據甚至對數據進行排序、分頁或編輯而需要編寫的自定義代碼的數量。

  其中 ObjectDataSource 控件可針對各種基礎數據存儲區(如 SQL 數據庫或 XML)啟用聲明性數據綁定模型。因為頁開發人員也常常將數據檢索(也可能包含業務邏輯)封裝在一個組件對象中,從而在呈現頁和數據提供程序之間引入另一個層。ObjectDataSource 控件允許開發人員使用此傳統的三層結構構造應用程序,同時仍然能夠利用 ASP.NET 中的聲明性數據綁定模型的易用性優點。

關鍵
  1、在數據層創建 強類型的DataSet和TableAdapter,TableAdapter查詢可以使用現有的存儲過程。注:直接把表或存儲過程拖進來會自動創建TableAdapter;

  2、中間層的類用[System.ComponentModel.DataObject]聲明為數據組件,CRUD方法分別對應       [DataObjectMethod(DataObjectMethodType.Insert)],[DataObjectMethod(DataObjectMethodType.Select)],[DataObjectMethod(DataObjectMethodType.Update)],[DataObjectMethod(DataObjectMethodType.Delete)] ;

  3、web層使用ObjectDataSource展現數據,ObjectDataSource就相當于一個代理。ObjectDataSource只是查找具有匹配的參數名稱的方法,它不會使用參數的 Type 或 Size,而只是對參數的名稱進行匹配;

  4、其它

  ·<asp:Parameter />有ConvertEmptyStringToNull屬性,默認是true。另外還有Direction屬性
    ·注意<asp:BoundField />的這幾個屬性NullDisplayText,HtmlEncode,ApplyFormatInEditMode,InsertVisible,DataFormatString,ReadOnly
  ·DataKeyNames有多個值的話用“,”分隔,用<asp:ControlParameter />綁定的話給其加一個“PropertyName”屬性,值類似如下“SelectedDataKey.Values[0]”
  ·關于綁定:簡單屬性<%# custID %>;集合<asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">;表達式<%# ( customer.FirstName + " " + customer.LastName ) %>;方法<%# GetBalance(custID) %>
  ·<%# Eval("field1") %> 和 <%# Bind("field1") %>,Eval是單向綁定,Bind是雙向邦定
  ·<asp:ObjectDataSource />有一個OldValuesParameterFormatString屬性一般不用,不過如果要處理樂觀并發之類的就會用到。當該屬性的值為“original_{0}”的時候“original_參數名”則為初始值
  ·還有一些如編程方式給參數賦值,錯誤處理,得到返回值之類的請看源碼

示例
相關存儲過程和數據層略;

單例模式的實現
App_Code/Singleton.cs

Code

 

中間層代碼
App_Code/Test.cs

Code

DataSourceControl/Test.aspx

Code

DataSourceControl/Test.aspx.cs

Code

 

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()