首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 數據教程(十八):ASP.NET 頁面中優雅處理 BLL/DAL 層例外

     編輯:關於ASP.NET

返回 ASP.NET 2.0 數據教程目錄

導言

使用分層架構 ASP.NET Web 應用處理資料,一般遵循步驟:

  1. 確定 BLL 需呼叫方法與參數(硬編碼、程式自動設定、用戶輸入)
  2. 呼叫方法
  3. 處理結果。呼叫回傳資料 BLL 方法含繫結資料至資料 Web 伺服器控制項;修改資料 BLL 方法含基於回傳值執行動作,或妥善處理步驟 2 引發例外

如前節所見,ObjectDataSource` 或資料 Web 伺服器控制項為步驟 1、3 提供擴充性。例 GridView` 控制項,觸發 RowUpdating` 事件前將欄位值指派至 ObjectDataSource` 的 UpdateParameters` 集合;ObjectDataSource` 完成操作後觸發 RowUpdated` 事件。

已檢測步驟 1 觸發事件並見如何實現自訂參數或取消操作。本節關注操作完成後觸發事件。透過後置事件處理器判斷操作過程是否產生例外並妥善處理,螢幕顯示友善錯誤訊息優於導向 ASP.NET 預設錯誤頁。

為說明後置事件運作,建立頁面:可編輯 GridView` 列出產品資訊。更新產品引發例外時,ASP.NET 頁面在 GridView` 上方顯示簡短訊息說明出現問題。開始實作!

第一步:為產品建立可編輯 GridView

建立僅含兩欄位 ProductName`、`UnitPrice` 的可編輯 GridView`。需為 ProductsBLL` 類別 UpdateProduct` 方法增加重載,僅接受 3 參數(產品名稱、單價、ID),相對於接受每個產品欄位方法。本節再練習建立可編輯 GridView` 顯示名稱、數量/單位、單價、庫存量,但僅允許名稱、單價、庫存量編輯。

需 UpdateProduct` 另一重載接受 4 參數:名稱、單價、庫存量、ID。在 ProductsBLL` 加入以下方法:

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, false)]
public bool UpdateProduct(string productName, decimal? unitPrice, short? unitsInStock, int productID)
{
    Northwind.ProductsDataTable products = Adapter.GetProductByProductID(productID);
    if (products.Count == 0) return false;
    Northwind.ProductsRow product = products[0];
    product.ProductName = productName;
    if (unitPrice == null) product.SetUnitPriceNull();
    else product.UnitPrice = unitPrice.Value;
    if (unitsInStock == null) product.SetUnitsInStockNull();
    else product.UnitsInStock = unitsInStock.Value;
    int rowsAffected = Adapter.Update(product);
    return rowsAffected == 1;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved