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 可以读取存储过程的返回值
  • 相关阅读:
    Socket 的网络编程
    《Python 3.5从零开始学》笔记-第8章 面向对象编程
    Python 的8个关键要素
    分布式发布订阅模型网络的实现有哪些
    MongoDB知识整理
    C++模板类与Qt信号槽混用
    C++中 =default,=delete用法
    QT知识整理
    Python题整理
    STL库的应用
  • 原文地址:https://www.cnblogs.com/james-yu/p/3280762.html
Copyright © 2011-2022 走看看