Isso porque
ExecuteNonQuery
não retorna o resultado da consulta, apenas a executa no servidor SQL. O valor de retorno é o número de linhas afetadas por sua instrução, -1 quando a instrução não afeta nenhuma linha. ExecuteNonQuery
(como o nome indica) não se destina a retornar resultados de consulta, mas sim a executar uma instrução que altera dados (como INSERT, DELETE, UPDATE). Os documentos informam:Você poderia usar:
count = (int)command.ExecuteScalar();
Para obter a contagem que você está procurando. Há também um exemplo nos documentos para
ExecuteScalar
.