Aquí es donde te equivocas:
cmd.ExecuteNonQuery();
Tu eres ejecutando una consulta.
Debe ExecuteReader
o ExecuteScalar
en cambio. ExecuteReader
se utiliza para un conjunto de resultados (varias filas/columnas), ExecuteScalar
cuando la consulta devuelve un único resultado (devuelve object
, por lo que el resultado debe convertirse al tipo correcto).
var result = (int)cmd.ExecuteScalar();
Los results
La variable ahora tendrá un OledbDataReader
o un valor con los resultados de SELECT
. Puede iterar sobre los resultados (para un lector) o el valor escalar (para un escalar).