Для анонимного downvoter ключевая часть ОП:
Я пытался использовать окно сообщения для отображения значения чисел, но результат всегда равен 0. Таблица автомобилей содержит 5 записей.Так почему же я не получаю правильные результаты? ..
ОП явно пытается получить количество записей в таблице (скалярный агрегат), а не все данные таблицы.
Мой ответ:
Это потому, что ваш запрос возвращает таблицу, а не скалярное значение, и вы вызываете неправильную функцию.Ваш запрос должен быть следующим:
"SELECT COUNT(*) FROM cars"
И ExecuteNonQuery фактически не ожидает каких-либо результатов, которые будут возвращены.(Обычно вы выполняете операции вставки, обновления и удаления с ExecuteNonQuery.) Вы должны использовать ExecuteScalar , который ожидает однозначный результат, такой как count (*).
Теперь все вместе:
OleDbCommand cmd = new OleDbCommand("SELECT count(*) FROM cars", conn);
cmd.CommandType = CommandType.Text;
int numbers = cmd.ExecuteScalar();