zoukankan      html  css  js  c++  java
  • 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 可以读取存储过程的返回值
  • 相关阅读:
    给video添加自定义进度条
    高德地图鼠标获取经纬度
    高德地图行政区域划分
    面试经验之谈
    Hybrid App 开发模式
    运维 08 常用服务安装部署
    运维 07 Linux系统基础优化及常用命令
    运维 06 vim与程序员
    运维 05 Shell基本命令
    运维 04 Shell基础命令(二)
  • 原文地址:https://www.cnblogs.com/dongh/p/7115163.html
Copyright © 2011-2022 走看看