Das liegt daran, dass ExecuteNonQuery
gibt das Ergebnis der Abfrage nicht zurück, sondern führt es nur auf dem SQL-Server aus. Der Rückgabewert ist die Anzahl der Zeilen, die von Ihrer Anweisung betroffen sind, -1, wenn die Anweisung keine Zeilen betrifft. ExecuteNonQuery
(wie der Name schon sagt) ist nicht zum Zurückgeben von Abfrageergebnissen gedacht, sondern zum Ausführen einer Anweisung, die Daten ändert (z. B. INSERT, DELETE, UPDATE). In den Dokumenten steht:
Sie könnten Folgendes verwenden:
count = (int)command.ExecuteScalar();
Um die gesuchte Anzahl zu erhalten. Es gibt auch ein Beispiel in der Dokumentation für ExecuteScalar
.