Na podstawie MSDN:
W przypadku instrukcji UPDATE, INSERT i DELETE zwracaną wartością jest liczba wierszy, których dotyczy polecenie. Gdy w tabeli wstawianej lub aktualizowanej istnieje wyzwalacz, zwracana wartość obejmuje liczbę wierszy, na które ma wpływ zarówno operacja wstawiania lub aktualizowania, jak i liczbę wierszy, na które ma wpływ wyzwalacz lub wyzwalacze. W przypadku wszystkich innych typów instrukcji zwracana wartość wynosi -1. Jeśli nastąpi wycofanie, zwracana wartość również wynosi -1.
Chcesz zwrócić liczbę wierszy, których dotyczy polecenie i zapisać je w int
zmienna, ale ponieważ typ instrukcji to select
więc zwraca -1
.
Rozwiązanie :Jeśli chcesz uzyskać liczbę wierszy, na które ma wpływ polecenie SELECT i zapisać je w zmiennej int, możesz użyć ExecuteScalar
.
var theCount = (int)cmd.ExecuteScalar();