Basato su MSDN:
Per le istruzioni UPDATE, INSERT e DELETE, il valore restituito è il numero di righe interessate dal comando. Quando esiste un trigger su una tabella in fase di inserimento o aggiornamento, il valore restituito include il numero di righe interessate dall'operazione di inserimento o aggiornamento e il numero di righe interessate dal trigger o dai trigger. Per tutti gli altri tipi di istruzioni, il valore restituito è -1. Se si verifica un rollback, anche il valore restituito è -1.
Vuoi restituire il numero di righe interessate dal comando e salvarlo in un int
variabile ma poiché il tipo di istruzione è select
quindi restituisce -1
.
Soluzione :Se vuoi ottenere il numero di righe interessate dal comando SELECT e salvarlo in una variabile int puoi usare ExecuteScalar
.
var theCount = (int)cmd.ExecuteScalar();