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

Hxj.Data 更新操作:Update 實體追蹤、欄位字典、單欄位三大模式完整指南

     編輯:關於ASP.NET

三大更新模式,依場景選擇

模式一:實體追蹤更新(適合編輯頁面多欄位異動)

Products p = DbSession.Default.From().ToFirst();
p.Attach(); // 開啟修改追蹤
p.ProductName = "apple";
p.UnitPrice = 10.5m;
// p.GetModifyFields() 可檢視異動欄位
// p.ClearModifyFields() 可清除追蹤
int rows = DbSession.Default.Update(p);
// 僅更新實際異動的欄位

Attach() 後的屬性設定會被記錄,Update 只產生異動欄位的 SET 子句。

模式二:單欄位直更新(適合狀態切換、計數器遞增)

DbSession.Default.Update(
    Products._.ProductName, "apple", 
    Products._.ProductID == 1);
// SQL: UPDATE [Products] SET [ProductName]=@p0 WHERE [ProductID]=@p1

模式三:欄位字典批次更新(適合動態表單、部分欄位)

var dic = new Dictionary {
    { Products._.ProductName, "apple" },
    { Products._.ReorderLevel, 20 }
};
DbSession.Default.Update(dic, Products._.ProductID == 1);
// SQL: UPDATE [Products] SET [ProductName]=@p0, [ReorderLevel]=@p1 WHERE [ProductID]=@p2

回傳值與交易

  • 回傳 int 受影響列數(0 失敗、>0 成功)。
  • 交易中自動 Rollback 於例外。
  • 支援 DbTrans 參數加入外部交易。

選擇指南

場景推薦模式理由
編輯頁面 10+ 欄位實體追蹤自動偵測異動、避免手工列舉
單一欄位狀態變更單欄位直更新一行搞定、語意最清晰
動態表單/選填欄位字典批次靈活組合、只更新有值欄位
欄位運算更新 (a=b+c)字典 + Field 運算式見第 27 篇欄位組合更新

進階:EntityUtils.UpdateModel 輔助頁面繫結

Products p = new Products();
EntityUtils.UpdateModel(p, "txt_"); // 讀取 txt_ProductName 等控制項
DbSession.Default.Insert(p);

配合命名慣例(前綴 + 屬性名),一行完成頁面→實體 資料傳輸。

Update 多載設計貼近實務需求,消除手工拼接 SET 子句的錯誤與繁瑣,是 Hxj.Data 寫入端的核心 API。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved