Dapper: How to get return value ( output value) by call stored procedure

.Net使用Dapper框架(快速上手) 在.net6快速使用Dapper,本文从Dapper的方法使用、参数、事务和存储过程等方法,提供Dapper框架的代码使用示例使我们快速便捷地使用该ROM框架。 阅读详情

使用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.ReturnValue
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存储过程输出值 SQL代码:     USE [Book] GO /****** Object:  StoredProcedure [dbo].[User_Maneger]    Script Date: 10/26/2013 18:48:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /*用户信息存储过程*/ AL 阅读详情

相关推荐

C#进阶:轻量级ORM框架Dapper详解

Dapper是一个轻量级、高性能的.NET ORM工具,它允许开发者直接编写SQL语句并映射到.NET对象。通过提供简单的API和高效的性能,Dapper成为许多.NET开发者的首选ORM之一。然而,它也有一些局限性,如缺乏内置的高级功能和SQL依赖等。在使用Dapper时,建议结合项目需求、数据库环境和开发团队的经验来评估其适用性,并考虑使用插件和扩展来增强其功能。同时,也需要注意SQL注入的风险,并确保编写高效的SQL查询和合理的数据库操作。

陈辰学长的博客 5887

[Dapper].NET/C#中使用Dapper时如何获取存储过程返回的多个结果集?

Dapper中是否有方法获取从存储过程中返回的多个结果集,如果有,应该使用Dapper的哪个或者哪些方法来实现呢?

weixin_40029679的博客 728

Mac版Burp Suite专业版破解与汉化完整指南

在Web安全测试领域,Java应用程序的许可证验证机制与本地化实现是常见的技术课题。其原理通常涉及Java Agent技术,通过在JVM启动时动态修改字节码,实现对软件授权状态的校验逻辑进行拦截与重写,从而绕过官方验证。同时,软件界面的国际化(i18n)与本地化(l10n)则依赖于资源文件的替换与加载。从技术价值角度看,深入理解这些机制不仅能满足特定场景下的工具定制需求,更能加深对Java安全机制、软件保护与逆向工程的理解。在实际的工程实践中,安全研究人员与开发者常面临功能受限或语言障碍的挑战,尤其是在渗透

weixin_29327525的博客 650

.NET Core Dapper返回存储过程输出(output)参数

NET Core中使用Dapper执行存储过程并获取输出参数的值是一种常见需求。Dapper通过动态参数DynamicParameters类支持输出参数。对于输出参数,我们需要指定参数的类型、方向和大小。

weixin_42098295的博客 810

Dapper 返回存储过程值

using (IDbConnection conn = WebDbConn.DbService()) { conn.Execute(@"create proc #TestOutputParameterProc @Foo int, @Bar int out asset @Bar = @Foo select 1 as [A] select 2 as [B]"); tr...

weixin_30639719的博客 570

dapper 调用 存储过程返回值_.Net Core中使用oracle数据库并调用存储过程方法

一 前言  实战踩坑系列,调用第三方Oracle存储,各种血泪史,现记录如下。二 入坑  首先,调用Oracle需要安装客户端驱动才行,但是在程序开发中下载客户端驱动是一个不明智的选择。于是,不管是微软,还是oracle,都提供了方便我们程序开发的插件(dll/nuget),如System.Data.Oracle,Oracle.ManagedDataAccess。下图搜索结果中Oracle.Man...

weixin_39901685的博客 379

dapper 调用 存储过程返回值_.NET轻量级ORM框架Dapper入门精通

一、课程介绍本次分享课程包含两个部分《.NET轻量级ORM框架Dapper修炼手册》和《.NET轻量级ORM框架Dapper葵花宝典》,阿笨将带领大家一起领略轻量级ORM框架Dapper的魅力。本次分享课程适合人群范围:一、《.NET轻量级ORM框架Dapper修炼手册》适合人群如下:1、我是一个新手,主要工作面向的是MS SQL Server数据库,那么选择修炼手册一定没错。2、对Dapper从...

weixin_39853843的博客 288

dapper 调用 存储过程返回值_Dapper,大规模分布式系统的跟踪系统

概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如...

weixin_39765057的博客 357

dapper 调用 存储过程返回值_微服务运行时基础架构概述——微服务调用链监控...

1.现状和问题在微服务架构下,单独部署运行的并且无状态微服务都是彼此通过调用来进行交互。这种架构下,应用架构由集中式向分布式演进后,整个调用关系变得复杂,如图1所示。一个完整业务的调用过程要在多个微服务进行处理和传递,各个微服务之间相当独立,可能由不同的团队来开发、不同的语言来实现,这样可能会出现如下问题:如果微服务出现调用错误和异常,如何准确定位微服务出错的位置?如何快速定位错误问题?...

weixin_39929635的博客 201

数据库事务&存储过程

一、【事务概念】 事务(Transaction)是指构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行。 1,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态(要么全执行,要么全都不执行); 2,同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。 二、【事务举例】 用一个常用的“A 账户向 B 账户汇钱”的例子来说...

JiangDong的博客 4566

dapper 调用 存储过程返回值_MyBatis系列教程6 : 调用存储过程

点击上方“Java后端编程”,选择“置顶或者星标”与你一起成长一、提出需求*  *查询得到男性或女性的数量, 如果传入的是0就女性否则是男性二、准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name varchar(10), sex char(2) ); insert int...

weixin_40006965的博客 161

Dapper入门

dapper如门

mwcxz的博客 8929

Dapper入门教程

Dapper的入门使用

weixin_49336442的博客 5608

ORM-Dapper学习<二>.关于Dapper

Dapper的简介   Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。 使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库...

diaochou1478的博客 1385

C#进阶-Dapper原理解析与使用教程

本文详细介绍了Dapper在C#中的使用方法,包括Dapper的基本概念、与其他持久层框架的比较、基本语法和高级语法的使用,并通过实例讲解了如何在项目中集成和使用Dapper。最后,总结了Dapper的优缺点及其在实际开发中的应用场景。一、Dapper介绍1. Dapper介绍Dapper是一个轻量级的ORM(对象关系映射...

cnzzs的博客 2500

探索Dapper与EF Core等ORM框架的神器

探索Dapper与EF Core等ORM框架的神器

qq_64948696的博客 1551

Dapper

1. 简介 Dapper是.NET下一个轻量级的ORM框架,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。也就是说实体类都要自己写。它没有复杂的配置文件,一个单文件就可以了。Dapper通过提供IDbConnection扩展方法来进行工作。 Dapper没有定义特定的数据库要求,它支持所有ADO.NET支持的数据库,如 SQLite, SQL CE, Firebird, Oracle, MySQL, PostgreSQL, SQL Server 等。 国外知名网站

极客神殿 1029

Dapper ORM 和 DapperExtensions 从入门到精通

Dapper 是一个轻量级的 ORM(对象关系映射)工具,它基于 ADO.NET 实现,能够显著提高数据库操作的性能和效率。Dapper 由 Stack Overflow 团队开发,最初是为了优化其网站的数据库访问性能而设计的。它通过扩展接口,提供了一种简单而高效的方式来执行 SQL 查询和更新操作。性能优势:Dapper 的性能非常出色,因为它直接操作,避免了传统 ORM 框架中复杂的映射和缓存机制。在许多场景下,Dapper 的性能比传统 ORM 框架高出数倍。易用性。

caifox的博客 2331

AHP层次分析法在项目风险评估中的实战应用(含Excel模板)

本文详细介绍了AHP层次分析法在项目风险评估中的实战应用。通过构建风险层次模型、利用判断矩阵量化主观判断,并结合Excel工具进行权重计算与一致性检验,将模糊的定性风险转化为清晰的量化排序。文章以新产品上线项目为例,提供了完整的分析流程和可操作的Excel模板,帮助项目经理高效识别并优先处理核心风险。

weixin_29061465的博客 540

超详细的数字信号处理(DSP)复习笔记

主要内容:数字信号处理(DSP)课程复习笔记参考教材:钱玲,谷亚林,王海青.数字信号处理.北京:电子工业出版社,2018.8适用对象:1,南京理工大学本科生课程期末备考复习 2,有意愿考研南京理工大学的准研究生复试备考简介:主要以参考教材作为主要依据,对教材的内容做了详细梳理,重点部分做了额外的分析,另外补充了教材内不完善的证明和推导,以更明了的方式解读数字信号处理。全部干货!!!

上一篇: Dapper use Table Value Parameter in C# (Sql Server 数组参数)
下一篇: Dapper 一对多查询 one to many
stoneLSL
博客等级 码龄10年 5粉丝 30原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值