Basierend auf MSDN:
Bei UPDATE-, INSERT- und DELETE-Anweisungen ist der Rückgabewert die Anzahl der vom Befehl betroffenen Zeilen. Wenn ein Trigger in einer Tabelle vorhanden ist, die eingefügt oder aktualisiert wird, enthält der Rückgabewert die Anzahl der Zeilen, die sowohl von der Einfüge- als auch der Aktualisierungsoperation betroffen sind, sowie die Anzahl der Zeilen, die von dem Trigger oder den Triggern betroffen sind. Bei allen anderen Arten von Anweisungen ist der Rückgabewert -1. Bei einem Rollback ist der Rückgabewert ebenfalls -1.
Sie möchten die Anzahl der vom Befehl betroffenen Zeilen zurückgeben und in einem int
speichern Variable, aber da der Typ der Anweisung select
ist also gibt es -1
zurück .
Lösung :Wenn Sie die Anzahl der vom SELECT-Befehl betroffenen Zeilen erhalten und in einer int-Variablen speichern möchten, können Sie ExecuteScalar
verwenden .
var theCount = (int)cmd.ExecuteScalar();