ExecuteNonQuery возвращает -1, даже если выполнение прошло успешно - PullRequest
3 голосов
/ 28 апреля 2009

Я использую веб-приложение asp.net 2.0. Внезапно этим утром ExecuteNonQuery начал возвращать -1, хотя команды в SP, который выполняется ExecuteNonQuery, выполняются (я вижу элементы, вставленные и обновленные в БД), и исключение не выдается.

Это происходит только тогда, когда я подключен к нашей производственной БД. Когда я подключаюсь к нашей базе данных разработки, они возвращают правильное количество затронутых строк.

Также, что интересно, у ExecuteDataSet нет проблем - он прекрасно возвращает DataSets.

Так что это не похоже на проблему с подключением. Но что еще это может быть?

Ответы [ 4 ]

5 голосов
/ 28 апреля 2009

Вы также можете проверить процедуру, чтобы увидеть, есть ли там эта строка кода -

SET NOCOUNT ON

Это приведет к тому, что ExecuteNonQuery всегда будет возвращать -1.

2 голосов
/ 28 апреля 2009

-1 означает «Строки не выполнены».
Оператор SELECT также вернет -1.

Проверьте влияние SP на dev и живую среду.

Взято из SqlCommand :: ExecuteNonQuery Method

Для операторов UPDATE, INSERT и DELETE возвращаемое значение - это количество строк, затронутых командой. Если для вставляемой или обновляемой таблицы существует триггер, возвращаемое значение включает количество строк, на которые влияет операция вставки или обновления, а также количество строк, на которые влияет триггер или триггеры. Для всех других типов операторов возвращаемое значение равно -1. Если происходит откат, возвращаемое значение также равно -1.

1 голос
/ 28 апреля 2009

Я сталкиваюсь с почти такой же проблемой (хотя в Postgresql) с NpgsqlDataAdapter, метод Update всегда возвращает 1.

Возможно, ваша строка соединения с вашей базой данных разработки отличается от вашей производственной базы данных. Или, если на самом деле нет разницы между их строками соединения, возможно, пакет обновления вашей производственной базы данных отличается от вашей базы разработки.

0 голосов
/ 17 мая 2017

ExceuteNonQuery возвращает -1 для всех типов хранимых процедур согласно msdn

будет возвращать обновленные значения записей только в случае насыщения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...