Voici où vous vous trompez :
cmd.ExecuteNonQuery();
Vous êtes exécuter une requête.
Vous devez ExecuteReader
ou ExecuteScalar
Au lieu. ExecuteReader est utilisé pour un jeu de résultats (plusieurs lignes/colonnes), ExecuteScalar lorsque la requête renvoie un seul résultat (elle renvoie object , le résultat doit donc être transtypé dans le type correct).
var result = (int)cmd.ExecuteScalar();
Les results la variable contiendra désormais un OledbDataReader
ou une valeur avec les résultats du SELECT . Vous pouvez parcourir les résultats (pour un lecteur) ou la valeur scalaire (pour un scalaire).