sql >> Databasteknik >  >> RDS >> Sqlserver

ExecuteNonQuery returnerar -1 när du använder sql COUNT trots frågesträngen

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();


  1. CAST() Funktion i Oracle

  2. SQL Server-filnamn kontra versioner

  3. Specialtecken i PHP/MySQL

  4. Lär dig hur man skapar formulär i minnet (Ja, du hörde rätt)