đây là quy trình được lưu trữ của tôi. khi tôi kiểm tra nó, luôn luôn có được kết quả chính xác trở lại.Sử dụng Dapper.net để gọi thủ tục lưu sẵn, luôn trả lại -1 trở lại
ALTER PROCEDURE [dbo].[AddSmoothieIngredients]
-- Add the parameters for the stored procedure here
@Query NVARCHAR(4000) ,
@SmoothieId INT ,
@CreatedDate DATETIME ,
@Status INT ,
@UserId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRAN
IF @SmoothieId > 0
BEGIN
DELETE FROM dbo.SmoothieIngredients
WHERE SmoothieId = @SmoothieId;
EXECUTE (@Query);
END
ELSE
BEGIN
IF @UserId = 0
SET @UserId = NULL;
INSERT INTO dbo.Smoothie
(Name, CreatedDate, Status, UserId)
VALUES (N'', @CreatedDate, @Status, @UserId);
SET @SmoothieId = SCOPE_IDENTITY();
SET @Query = REPLACE(@Query, 'sId', @SmoothieId);
EXECUTE (@Query);
END
COMMIT TRAN
RETURN @SmoothieId
END TRY
BEGIN CATCH
ROLLBACK
END CATCH
END
Tuy nhiên Khi tôi gọi thủ tục được lưu trữ này bằng dapper.net, luôn trả về -1.
using (var conn = OpenConnection())
{
var parameter = new { Query = query, SmoothieId = smoothieId, CreatedDate = createdDate, Status = status, UserId = userId };
return conn.Execute("AddSmoothieIngredients", parameter, commandType: CommandType.StoredProcedure);
}
Có thể, dapper.net không thể nhận giá trị trả lại từ quy trình được lưu trữ. nhưng tôi thực sự không biết cách sửa nó. Hãy giúp tôi.
nhờ. nhưng bạn vẫn phải sử dụng thực thi, tôi tìm thấy một mẫu khác trực tuyến và nó hoạt động. – qinking126