Почему не получается достать количество строк из таблицы?
Разберитесь, что делает метод ExecuteNonQuery. В данном случае, вам он не подходит. Скорее всего вам нужен ExecuteScalar.
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()