根据官方文档 如下:

//简单用法
var dt = db.Ado.UseStoredProcedure().GetDataTable("sp_school",new{name="张三",age=0}); 
 
 
 
//带有output的存储过程
var nameP= new SugarParameter("@name", "张三");
var ageP= new SugarParameter("@age", null, true);//设置为output
var dt = db.Ado.UseStoredProcedure().GetDataTable("sp_school",nameP,ageP);
//ageP.Value可以拿到output值
//Oracle 游标参数用法  
 
 
//如果是ReturnValue
var nameP=new SugarParameter("@name", "张三", typeof(string),ParameterDirection.ReturnValue);
 
 
//我们还可以用 GetParameters 来简化参数操作 
 SugarParameter [] pars =db.Ado.GetParameters(new{p=1,p2=p}); 
 pars[1].Direction=ParameterDirection.Output;

我的存储过程

--执行有错误 return 0 反之return 1
begin tran

    内容

commit tran
return 1

Error_Label:
rollback tran
return 0

调用方式,获取  ReturnV 的 Value 来判断是否执行是否有错误 

var ReturnV = new SugarParameter("@return_value", null);
 //ReturnPara 是存储过程返回值结果,需要设置ParameterDirection.ReturnValue
ReturnV.Direction = System.Data.ParameterDirection.ReturnValue;

using (SqlSugarClient db = Sql.GetIntance()) //开启数据连接
{
      var dt = db.Ado.UseStoredProcedure().GetDataTable("P_MaterialAutoOut", OutPlanDetailId, Remark, SelectLocationType, OutType, OutSite, OutPort, ReturnV );
}

(int)ReturnPara.Value;

 

Logo

华为云1024程序员节送福利,参与活动赢单人4000元礼包,更有热门技术干货免费学习

更多推荐