SQLDataReader корректно читает таблицу из одной строки, но при чтении таблицы из двух строк вообще не видит записей

Есть хранимая процедура на MS SQL, в её коде содержится объявление и вывод таблицы "SELECT * FROM ...", а также добавление данных в эту таблицу.

При вызове этой процедуры в management studio выводится таблица из двух строк (скриншот ниже). При вызове этой же процедуры с теми же параметрами в приложении C# WinForms строка reader.HasRows возвращает false. В цикл while Reader также не входит, т.е. не видит строк вообще.

НО! Когда результирующая таблица этой же процедуры содержит одну строку, reader прекрасно работает. Почему такое может быть?

Результат вызова процедуры в management studio:

Результат вызова процедуры в management studio

Код C# (AddArrive - компонент WinForms SQLCommand):

    addArrive.Parameters["@item"].Value = comboBoxItemName.Text;
    addArrive.Parameters["@orderDate"].Value = dateTimePickerOrder.Text;
    addArrive.Parameters["@quantity"].Value = textBoxQuantity.Text;
    addArrive.Parameters["@salePrice"].Value = textBoxSalePriceArrive.Text;
    addArrive.Parameters["@provider"].Value = comboBoxProvider.Text;
    sqlConnection1.Open();
    addArrive.ExecuteNonQuery();
    MessageBox.Show(addArrive.Parameters["@message"].Value.ToString());
    
    SqlDataReader reader = addArrive.ExecuteReader();
    if (reader.HasRows)
    {
         while (reader.Read())
         {
             label1.Text = reader.GetValue(0).ToString();
         }
     }
    sqlConnection1.Close();

Ответы (1 шт):

Автор решения: Полина Бельцева

большое спасибо за ответы. ExecuteNonQuery() и ExecuteReader() выполняют один и тот же запрос, итого этот запрос вызывается дважды, что и вызвало ошибку. Хорошего дня вам

→ Ссылка