ExecuteNonQuery()始终返回-1

时间:2011-10-17 12:59:18

标签: 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

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

1 个答案:

答案 0 :(得分:42)

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

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