23

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

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

4

1 回答 1

52

检查您的存储过程中是否没有“SET NOCOUNT ON”。这将停止返回影响行的数量。从字面上看,“NoCount”是开启的。

在这种情况下,默认响应将始终为“-1”。

于 2013-04-10T11:13:59.560 回答