PetaPoco 訪問SQL SERVER 存儲過程
阿新 • • 發佈:2017-07-04
ring exe str 返回 列表 存儲 pro value http
博客園有篇文章《小巧方便的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 可以讀取存儲過程的返回值
PetaPoco 訪問SQL SERVER 存儲過程