C'est parce que ExecuteNonQuery
ne renvoie pas le résultat de la requête, il l'exécute simplement sur le serveur SQL. La valeur de retour est le nombre de lignes affectées par votre instruction, -1 lorsque l'instruction n'affecte aucune ligne. ExecuteNonQuery
(comme son nom l'indique) n'est pas destiné à renvoyer des résultats de requête, mais plutôt à exécuter une instruction qui modifie les données (comme INSERT, DELETE, UPDATE). La documentation indique :
Vous pouvez utiliser :
count = (int)command.ExecuteScalar();
Pour obtenir le nombre que vous recherchez. Il existe également un exemple dans la documentation pour ExecuteScalar
.