• 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 可以读取存储过程的返回值
  • 相关阅读:
    Spring创建对象的原理
    java.io.WriteAbortedException异常
    在servlet中返回json数据
    Java中导入导出Excel -- POI技术
    Java文件下载
    MySql 分页关键字(limit)
    从dao层查出的数据到页面时数值都是零的异常
    注解
    事务的四大特性
    Java-事务管理
  • 原文地址:https://www.cnblogs.com/dongh/p/7115163.html
Copyright © 2020-2023  润新知