PetaPoco 訪問SQL SERVER 存儲過程


 博客園有篇文章《小巧方便的ORM類庫——PetaPoco》  介紹了PetaPoco調用存儲過程:

//調用存儲過程
db.Execute("exec procSomeHandler @0, @1", 3, "2011-10-01");

//調用帶輸出(OUTPUT)參數的存儲過程, 寫的sql語句,@0參數后的“output”是關鍵
var param = new SqlParameter() { Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int };
db.Execute("exec procSomeHandler @0 OUTPUT", param);

下面再介紹介紹既有輸入參數,又有輸出參數的存儲過程調用:
假設有存儲過程定義如下:
CREATE PROCEDURE [dbo].[sp_pub_SerialNo_new]
 @SerialNoType varchar(30),  -- 需要得到編號的業務類型
 @Year int,     -- @Year ,@Month = 0 ,使用系統的日期
 @Month int,
 @SerialNo varchar(30) output

//PetaPoco調用如下:

//string Jobtype ,int iYear,int iMonth 設置初始值
var param = new SqlParameter("SerialNo",SqlDbType.VarChar,30);
param.Direction = System.Data.ParameterDirection.Output;
DataContext _db = DataContextHelp.GetDataContextDefault();
//調用存儲過程得到一個業務編號
var spResult = _db.Execute("EXEC sp_pub_SerialNo_new @SerialNoType,@Year,@Month,@SerialNo OUTPUT "
          , new { SerialNoType=JobType,Year= iYear,Month= iMonth,SerialNo= param });
return param.Value.ToString(); //返回輸出參數

注意紅色部分:
1.聲明一個輸出參數
2.SQL 語句部分添加OUTPUT
3.參數列表里面傳遞param
4.spResult 可以讀取存儲過程的返回值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM