程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0(C#)(8) - DataSourceControl(數據源控件)

ASP.NET 2.0(C#)(8) - DataSourceControl(數據源控件)

編輯:關於ASP.NET

介紹

在 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_參數名”則為初始值

·還有一些如編程方式給參數賦值,錯誤處理,得到返回值之類的請看源碼

示例

相關存儲過程和數據層略,見源碼

單例模式的實現

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