@thebedcoder

Почему не получается достать количество строк из таблицы?

Всем привет,хочу записать в переменную количество всех строк таблицы(на данный момент их 6).Но вместо 6 записывается -1. Вот код :
private void button3_Click(object sender, EventArgs e)
        {
            command = "SELECT COUNT(*) FROM clients;";
            SQLiteCommand com1 = new SQLiteCommand(command,connection);
            connection.Open();
            count = com1.ExecuteNonQuery();
            connection.Close();
            MessageBox.Show(Convert.ToString(count));
        }
  • Вопрос задан
  • 307 просмотров
Решения вопроса 2
nki
@nki
bezkart.ru готовая система лояльности
Разберитесь, что делает метод ExecuteNonQuery. В данном случае, вам он не подходит. Скорее всего вам нужен ExecuteScalar.
Ответ написан
@Free_ze
Пишу комментарии в комментарии, а не в ответы
ExecuteNonQuery() возвращает количество affected rows, но так как вы не изменяете таблицу (SELECT statement), то и ждать количество измененных строк нет смысла.

For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command.When a trigger exists on a table being inserted or updated, the return value includes the number of rows affected by both the insert or update operation and the number of rows affected by the trigger or triggers.For all other types of statements, the return value is -1.If a rollback occurs, the return value is also -1.

В данном случае вас должен интересовать метод ExecuteScalar()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы