Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Terminator004
1 / 1 / 0
Регистрация: 14.09.2016
Сообщений: 367
1

Почему ответ от ExecuteNonQuery -1?

02.02.2019, 17:28. Просмотров 956. Ответов 2
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
int id;
using (SqlConnection sqlCon = new SqlConnection(connection))
            {
                sqlCon.Open();
                SqlCommand sqlc = new SqlCommand("Select Id from Tests where Whose ='" + whose + "' AND TestName='" + etot + "'", sqlCon);
                id = (int)sqlc.ExecuteNonQuery();
 
            }
            MessageBox.Show(id.ToString());
Выдаёт -1, хотя должно быть id столбца
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2019, 17:28
Ответы с готовыми решениями:

ExecuteNonQuery returns -1
Доброго времени суток! просмотрел похожие темы, решения не нашел( столкнулся с такой проблемой:...

ExecuteNonQuery возвращает -1 (
Почему то запрос не выполняется вот код: помогите плиз... public bool SaveNewCredit(Guid ID,...

ExecuteNonQuery возвращает -1
Подскажите, пожалуйста, почему ExecuteNonQuery возвращает -1? private static string connStr...

помогите с ExecuteNonQuery
Проблема не обновляются данные в БД .sdf. Форма справочник / грид через select вытаскивает данные...

Ругается на ExecuteNonQuery();
string card = "TransistorCard"; sqlConnection.Open(); using (var...

2
OwenGlendower
Супер-модератор
Эксперт .NET
10588 / 9101 / 3882
Регистрация: 17.03.2014
Сообщений: 18,229
Записей в блоге: 1
Завершенные тесты: 2
02.02.2019, 17:58 2
Лучший ответ Сообщение было отмечено Terminator004 как решение

Решение

Terminator004, в ADO.NET есть три метода для выполнения запросов отличающихся назначением с точки зрения возвращаемого значения
  • ExecuteReader - возвращает DataReader предназначенный для получение табличных данных путем построчного однонаправленного чтения. Применяется когда запрос возвращает табличные данные. Чаще всего это SELECT.
  • ExecuteScalar - возвращает object являющийся значением первой ячейки первой строки. Применяется когда запрос возвращает табличные данные. Рекомендуется использовать для запросов возвращающих ровно одну строку с одной ячейкой.
  • ExecuteNonQuery - возвращает int указывающий количество строк затронутых запросом. Предназначен в первую очередь для запросов не возвращаюших табличные данные - INSERT/UPDATE/DELETE.
Исходя из этого описания подумай почему ExecuteNonQuery не возвращает id и что нужно использовать вместо него.
3
Terminator004
1 / 1 / 0
Регистрация: 14.09.2016
Сообщений: 367
02.02.2019, 18:01  [ТС] 3
OwenGlendower, аа спасибо, ExecuteScalar тогда )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2019, 18:01

ExecuteNonQuery непонятная ошибка
Непонятная ошибка : string payAmount =...

Ошибка в изменении таблицы (ExecuteNonQuery())
Подскажите пожалуйста при изменении базы данных возникла ошибка ExecuteNonQuery(), как ее исправить...

ExecuteNonQuery: Свойство Connection не инициализировано
как исправить ошибку, не подскажите??? private void button1_Click_1(object sender, EventArgs e)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru