Baserat på MSDN:
För UPDATE-, INSERT- och DELETE-satser är returvärdet antalet rader som påverkas av kommandot. När en utlösare finns i en tabell som infogas eller uppdateras, inkluderar returvärdet antalet rader som påverkas av både infognings- eller uppdateringsoperationen och antalet rader som påverkas av utlösaren eller utlösaren. För alla andra typer av påståenden är returvärdet -1. Om en rollback inträffar är returvärdet också -1.
Du vill returnera antalet rader som påverkas av kommandot och spara det i en int
variabel men eftersom typen av sats är select
så det returnerar -1
.
Lösning :Om du vill få antalet rader som påverkas av kommandot SELECT och spara det i en int-variabel kan du använda ExecuteScalar
.
var theCount = (int)cmd.ExecuteScalar();