Update命令运行,但在Dapper中返回-1

时间:2019-01-12 12:23:47

标签: sql-server tsql dapper

我正在使用以下代码更新记录,它更新了特定记录,但返回-1。

我正在使用Dapper执行此过程:

ALTER PROCEDURE [dbo].[Contact]
    @ContactId VARCHAR(50) ,
    @AccountId VARCHAR(50) ,
    @EmailAddress NVARCHAR(100)
AS
BEGIN
    DECLARE MID bigint = 0

    SELECT TOP 1 MID = CID 
    FROM Type3002 
    WHERE ATTRIBUTE_2710 LIKE CAST(@EMailAddress AS VARCHAR(100))

    IF NOT EXISTS (SELECT * FROM Type3002     
                   WHERE ContactId LIKE '%,' + CAST(@ContactId AS VARCHAR(100)) + ',%') 
    BEGIN 
        UPDATE Type3002
        SET ATTRIBUTE_2710 = LEFT(@EMailAddress, 50),
            ContactId = ContactId +','  + @ContactId,
            AccountId = AccountId ++','+ @AccountId 
        WHERE CID = MID
    END
    ELSE IF NOT EXISTS (SELECT * FROM Type3002 
                        WHERE AccountId LIKE '%,' + @AccountId + ',%' 
                          AND ContactId LIKE '%,' + @ContactId)
    BEGIN 
        UPDATE Type3002
        SET AccountId = AccountId +','+ @AccountId 
        WHERE CID = MID
    END
END

调用此过程的代码如下:

var result = await connection.ExecuteAsync("[Contact]",

1 个答案:

答案 0 :(得分:2)

您的过程缺少RETURN语句。

请注意,在Transact-SQL中,很少使用RETURN(它只能是1.2值,不能为NULL)。 OUTPUT参数更加有用。

int也应该在任何地方MID