ExecuteNonQuery()总是返回-1

本文关键字:返回 ExecuteNonQuery | 更新日期: 2023-09-27 18:11:40

我正在使用一个存储过程在表中插入一些值。

CREATE PROCEDURE [dbo].[Sp_InsertValue]
@Val1 as nvarchar(50)
@Val2 as nvarchar(50)
as
BEGIN
    IF NOT EXISTS(SELECT * FROM @mytable WHERE ID=@Val1)
    INSERT INTO @mytable VALUES(@VAL2)
END

我使用ExecuteNonQuery()在ASP中调用此存储过程。. NET使用c#。它工作得很好,没有问题,如果值不存在,它会插入值。问题是cmd.ExecuteNonQuery()总是返回-1。我希望如果插入一条记录,它应该返回1,如果没有返回0,对吧?

ExecuteNonQuery()总是返回-1

检查存储过程中没有设置"SET NOCOUNT ON"。这将阻止返回的影响行数。字面上'NoCount'是ON的

在这种情况下,默认的响应总是'-1'。