Dapper: How to get return value ( output value) by call stored procedure
使用Dapper 执行存储过程插入一条数据,同时返回主键
Dapper 的参数类型有以下四种 System.Data.ParameterDirection
public enum ParameterDirection
{
Input = 1,
Output = 2,
InputOutput = 3,
ReturnValue = 6
}
Method 1 Use ParameterDirection.ReturnValue
##### key:
return @@IDENTITY
p.Add("@ID", dbType: DbType.Int32, direction:ParameterDirection.ReturnValue);
var id = p.Get("@tID");
MyTabel:
CREATE TABLE [dbo].[WorkLog](
[LogID] [bigint] IDENTITY(1,1) NOT NULL,
[TypeID] [int] NOT NULL,
[InsertDate] [datetime2](7) NOT NULL,
[Description] [nvarchar](max) NULL,
[UserName] [nvarchar](250) NULL,
[StatusId] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Store Procedure:
CREATE proc [dbo].[InsertLogAndReturnID]
@TypeID INT ,
@Description nvarchar(max),
@UserName nvarchar(250)
AS
Begin
declare @TestID INT
INSERT INTO [dbo].[WorkLog]
( [TypeID]
,[InsertDate]
,[Description]
,[UserName])
VALUES
(
@TypeID
, GETDATE()
, @Description
,@UserName )
return @@IDENTITY
END
GO
C# code:
var spName = "[dbo].[InsertLogAndReturnID]";
using (SqlConnection objConnection = new SqlConnection(Util.ConnectionString))
{
objConnection.Open();
DynamicParameters p = new DynamicParameters();
p.Add("@ID", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
p.Add("@TypeID", 1);
p.Add("@Description", "TEST1");
p.Add("@UserName", "stone");
var row = SqlMapper.Execute(objConnection, spName, p, commandType: CommandType.StoredProcedure);
var id = p.Get<Int32>("@ID");
objConnection.Close();
}
Method 2 Use ParameterDirection.Output
##### Stored Procedure
```
CREATE proc [dbo].[InsertLogAndReturnID]
@TypeID INT ,
@Description nvarchar(max),
@UserName nvarchar(250),
@ID INT OUTPUT
AS
Begin
declare @TestID INT
INSERT INTO [dbo].[WorkLog]
( [TypeID]
,[InsertDate]
,[Description]
,[UserName])
VALUES
(
@TypeID
, GETDATE()
, @Description
,@UserName )
SELECT @ID = @@IDENTITY
END
GO
##### C# Code
var spName = "[dbo].[InsertLogAndReturnID]";
using (SqlConnection objConnection = new SqlConnection(Util.ConnectionString))
{
objConnection.Open();
DynamicParameters p = new DynamicParameters();
p.Add("@TestID", dbType: DbType.Int32, direction: ParameterDirection.Output);
p.Add("@TypeID", 1);
p.Add("@Description", "TEST1");
p.Add("@UserName", "stone");
var row = SqlMapper.Execute(objConnection, spName, p, commandType: CommandType.StoredProcedure);
var id = p.Get<Int32>("@TestID");
objConnection.Close();
}
Dapper: How to get return value ( output value) by call stored procedure的更多相关文章
- [转]How to get return values and output values from a stored procedure with EF Core?
本文转自:https://stackoverflow.com/questions/43935345/how-to-get-return-values-and-output-values-from-a- ...
- SQL Server存储过程Return、output参数及使用技巧
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...
- return value, output parameter,
Return Value https://docs.microsoft.com/en-us/sql/t-sql/language-elements/return-transact-sql?view=s ...
- [转]Easy Stored Procedure Output Oracle Select
本文转自:http://www.oraclealchemist.com/oracle/easy-stored-procedure-output/ I answered a question on a ...
- EF 接收OUTPUT参数的方法 How to Retrieve Stored Procedure Output Parameters in Entity Framework
原文地址:http://blogs.microsoft.co.il/gilf/2010/05/09/how-to-retrieve-stored-procedure-output-parameters ...
- Dapper 的输出参数使用示范
-- 普通SQL 示范-- Queries with output parameters. Hide Shrink Copy Code // output parameters // the para ...
- 微软版的SqlHelper.cs类
一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...
- OracleHelper类
using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...
- SqlHelper类
using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...
随机推荐
- 基于32位Windows2003的数据库服务器优化,启用AWE,优化SQL Server
最近几天,笔者所在的单位中的一台WEB服务器由于负载过大出现了问题,当同时在线的用户达到一定规模(2000-3000)时,频繁出现页面响应迟缓.超时等问题.服务器采用的操作系统是Windows Ser ...
- ShowDoc 软件开发团队接口文档管理利器
ShowDoc是一个非常适合IT团队的在线API文档.技术文档工具.你可以使用Showdoc来编写在线API文档.技术文档.数据字典.在线手册. 这里介绍 Showdoc 这款开源(免费)文档管理系统 ...
- python数据分析5 数据转换
1数据转换 数据转换时数据准备的重要环节,它通过数据平滑,数据聚集,数据概化,规范化等凡是将数据转换成适用于数据挖掘的形式 1.1 数据平滑 去除数据中的噪声,将连续数据离散化.这里可以采用分箱.聚类 ...
- ORM之模型对象Model
模型对象Model Odoo的模型对象在odoo模块的models.py文件中,最基础的对象是BaseModel; Odoo的模型对象有三个:AbstractModel.Model.Transient ...
- 一台Linux服务器(4C8G配置)可以负载百万个连接?
一台Linux服务器可以负载多少个连接? 首先我们来看如何标识一个TCP连接?系统是通过一个四元组来识别,(src_ip,src_port,dst_ip,dst_port)即源IP.源端口.目标IP. ...
- thinkphp验证码不现实多半是bom惹的祸
thinkphp 验证码不现实多半是bom惹的祸,下面是驱除bom的代码: 链接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取码:x2p5 免费 ...
- 给电脑提升权限---- 切换为administrator
在装系统的时候我们都会在安装的时候进行创建用户这一操作,安装软件的时候总会出现权限不足的情况, 个人建议:如果你要是比较会使用电脑的话,可以体验一下超级管理员这一角色, 就是安装好了之后,切换为超级管 ...
- 最新修改Oracle10gscott用户
1.以system登录及输入自己设置口令; 2.更换sysdba身份: conn system/orcl as sysdba; 3.解锁scott用户(因装好默认是锁定的): alter user s ...
- async与await总结
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/11533174.html,多谢,=.=~ 抛出3个疑问: 1.async是干哈的? 2.await ...
- C# 单向链表 逆序(递归)
static void Main(string[] args) { while (true) { LinkedList L = new LinkedList(); L.Add(new Node(&qu ...