• 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 可以读取存储过程的返回值
  • 相关阅读:
    常用Linux命令
    SQL必知必会-笔记
    【ubuntu】install openbox+tint2+bmenu on ubuntu12.04.4
    【ruby】安装Ruby
    【ruby】快速安装gems的方法
    【sinatra】设置默认的端口
    【sinatra】修改默认ip绑定
    【sinatra】结合Padrino framework
    【sinatra】安装测试
    【rails3教材】博客构建过程2
  • 原文地址:https://www.cnblogs.com/dongh/p/7115163.html
Copyright © 2020-2023  润新知