我正在使用存储过程在表中插入一些值。
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,对吗?
答案 0 :(得分:42)
检查存储过程中是否没有“SET NOCOUNT ON”。这将停止返回的影响行数。字面上'NoCount'是ON。
在这种情况下,默认响应始终为“-1”。