ExecuteNonQuery()始终返回-1

Lal*_*ali 21 c# asp.net executenonquery

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

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
Run Code Online (Sandbox Code Playgroud)

我使用ExecuteNonQuery()使用C#在ASP.NET中调用此存储过程.它工作正常,没有问题,如果它们不存在,它会插入值.问题是cmd.ExecuteNonQuery()始终返回-1.我希望如果插入一条记录,它应该返回1,如果不是,则返回0,对吗?

小智 43

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

在这种情况下,默认响应始终为"-1".