Dapper: How to get return value ( output value) by call stored procedure
3192 단어 데이터 뱅 크
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("@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("@TestID");
objConnection.Close();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.