Gebaseerd op MSDN:
Voor UPDATE-, INSERT- en DELETE-instructies is de geretourneerde waarde het aantal rijen dat door de opdracht wordt beïnvloed. Als er een trigger bestaat voor een tabel die wordt ingevoegd of bijgewerkt, omvat de geretourneerde waarde het aantal rijen dat wordt beïnvloed door zowel de invoeg- of updatebewerking als het aantal rijen dat wordt beïnvloed door de trigger of triggers. Voor alle andere typen instructies is de geretourneerde waarde -1. Als er een rollback plaatsvindt, is de geretourneerde waarde ook -1.
U wilt het aantal rijen waarop het commando betrekking heeft teruggeven en het opslaan in een int
variabele maar aangezien het type instructie select
. is dus het retourneert -1
.
Oplossing :Als u het aantal rijen wilt weten dat wordt beïnvloed door het SELECT-commando en het wilt opslaan in een int-variabele, kunt u ExecuteScalar
gebruiken .
var theCount = (int)cmd.ExecuteScalar();