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

Hxj.Data 預存程序執行:FromProc、參數輸入輸出、返回值完整指南

     編輯:關於ASP.NET

FromProc 方法啟動預存程序查詢

無參數預存程序

DbSession.Default.FromProc("Ten Most Expensive Products").ToDataTable();

輸入參數:AddInParameter

DbSession.Default.FromProc("Sales by Year")
    .AddInParameter("Beginning_Date", DbType.DateTime, "1995-01-01")
    .AddInParameter("Ending_Date", DbType.DateTime, "1996-12-01")
    .ToDataTable();

對應預存程序:

CREATE PROCEDURE "Sales by Year"
    @Beginning_Date DateTime, @Ending_Date DateTime AS
SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy,ShippedDate) AS Year
FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
WHERE Orders.ShippedDate BETWEEN @Beginning_Date AND @Ending_Date

輸出/輸入輸出/返回值參數

執行並取得輸出參數

var cmd = DbSession.Default.FromProc("MyProc")
    .AddInParameter("@InParam", DbType.Int32, 10)
    .AddOutParameter("@OutParam", DbType.Int32)
    .AddReturnValueParameter("@RetVal", DbType.Int32);

// 執行非查詢
cmd.ExecuteNonQuery();

// 讀取輸出
int outVal = (int)cmd.GetParameterValue("@OutParam");
int retVal = (int)cmd.GetParameterValue("@RetVal");

交易支援

DbTrans trans = DbSession.Default.BeginTransaction();
DbSession.Default.FromProc("MyProc").SetDbTransaction(trans).ExecuteNonQuery();
trans.Commit();

最佳實務

  • 參數名稱**必須包含 @ 前綴**(如 @Beginning_Date),與資料庫定義一致。
  • DbType 需與資料庫參數型別對應,避免隱性轉換錯誤。
  • 僅查詢結果集用 ToDataTable/ToList;需輸出參數時用 ExecuteNonQuery + GetParameterValue。
  • 複雜業務邏輯優先放預存程序,ORM 僅負責呼叫與參數綁定。

FromProc 讓 Hxj.Data 完整支援預存程序,參數處理型別安全、交易整合無縫,是 Legacy 資料庫遷移與高效能批次作業的關鍵橋樑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方法對應用途
AddInParameterINPUT傳入值
AddOutParameterOUTPUT接收輸出值
AddInputOutputParameterINPUT OUTPUT雙向
AddReturnValueParameterRETURN VALUE接收 RETURN 碼