ExecuteNonQuery () всегда возвращает -1 - PullRequest
20 голосов
/ 17 октября 2011

Я использую хранимую процедуру для вставки некоторого значения в таблицу.

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, если нет, верно?

1 Ответ

42 голосов
/ 10 апреля 2013

Убедитесь, что в вашей хранимой процедуре нет «SET NOCOUNT ON».Это остановит количество возвращаемых строк аффекта.Буквально «NoCount» включен.

Ответ по умолчанию всегда будет «-1» в этой ситуации.

...