ASP.NET 2.0 ObjectDataSource控制項

來源:互聯網
上載者:User

ObjectDataSource控制項與SqlDataSource控制項的物件模型是類似的。ObjectDataSource沒有ConnectionString屬性,它暴露了TypeName屬性,用於指定需要執行個體化的執行資料操作的物件類型(類名)。ObjectDataSource控制項與SqlDataSource的命令屬性相似,也支援SelectMethod、UpdateMethod、InsertMethod和DeleteMethod等屬性,用於指明執行這些資料操作的關聯類別型的方法。本文將解釋建立資料訪問層和商務邏輯層組件,並通過ObjectDataSource對象展示ASP.NET 2.0資料群組件的技術。

綁定到資料訪問層

資料訪問層組件封裝了那些使用SQL命令查詢和修改資料庫的ADO.NET代碼。在典型情況下,它抽象了建立ADO.NET串連和命令的細節資訊,暴露了可以通過適當參數調用的方法。典型的資料訪問層組件可能暴露了下面一些方法:

public class MyDataLayer {
 public DataView GetRecords();
 public DataView GetRecordsByCategory(String categoryName);
 public DataView GetRecordByID(int recordID);

 public int UpdateRecord(int recordID, String recordData);
 public int DeleteRecord(int recordID);
 public int InsertRecord(int recordID, String recordData);
}

ObjectDataSource可以使用下面的方式來關聯到這個類型:

<asp:ObjectDataSource TypeName="MyDataLayer" SelectMethod="GetRecords" UpdateMethod="UpdateRecord"
DeleteMethod="DeleteRecord" InsertMethod="InsertRecord" runat="server"/>

ObjectDataSource要求對象有非常特殊的設計模式。這些約束都是Web應用程式請求所處的無狀態的(stateless)環境引起的。由於在典型情況下,對象的建立和銷毀都是為了服務於一個請求,因此通過對象資料來源綁定的對象也是無狀態的。在預設情況下,ObjectDataSource採用TypeName屬性指定的類型的預設的建構函式(不帶參數),儘管通過處理ObjectCreating事件來建立一個自訂對象執行個體,並把它指定給事件參數的ObjectInstance屬性,從而實現執行個體化也是可行的。與SelectMethod屬性關聯的對象方法可以返回任何對象、Ienumerable列表、集合或數組。在上面的資料訪問層樣本中,DataView對象實現了IEnumerable介面。我們在下一部分將討論到,這些方法也可以返回強化類型的集合或對象。

GetProducts() -> ProductCollection
GetProductsDataSet() -> DataSet
GetProduct (int productId) -> Product

Update、Insert和Delete一般把單獨的資料項目欄位作為參數,也可以把帶有資料項目欄位公用屬性的集合類對象作為參數。

UpdateProduct (int id, String name, double price, bool inStock)
UpdateProduct (Product p) // p.ID, p.Name, p.Price, p.InStock
DeleteProduct (int id)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.