sql >> Database teknologi >  >> RDS >> Sqlserver

ExecuteNonQuery returnerer -1 ved brug af sql COUNT på trods af forespørgselsstrengen

Baseret på MSDN:

For UPDATE-, INSERT- og DELETE-sætninger er returværdien antallet af rækker, der påvirkes af kommandoen. Når der findes en trigger på en tabel, der indsættes eller opdateres, inkluderer returværdien antallet af rækker, der er påvirket af både indsættelses- eller opdateringshandlingen, og antallet af rækker, der påvirkes af triggeren eller triggerne. For alle andre typer udsagn er returværdien -1. Hvis der sker en tilbagerulning, er returværdien også -1.

Du vil returnere antallet af rækker, der er påvirket af kommandoen, og gemme det i en int variabel, men da sætningstypen er select så det returnerer -1 .

Løsning :Hvis du ønsker at få antallet af rækker påvirket af SELECT-kommandoen og gemme det i en int-variabel, kan du bruge ExecuteScalar .

var theCount = (int)cmd.ExecuteScalar();


  1. Problemer med indholdstyper ved indlæsning af en armatur i Django

  2. hvordan gemmer man PostgreSQL jsonb ved hjælp af SpringBoot + JPA?

  3. Databasedesign:ét stort bord eller separate tabeller?

  4. Adaptive Server er ikke tilgængelig eller eksisterer ikke fejl ved forbindelse til SQL Server fra PHP