sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor MySQL-retur altid er 1 i C#-kode, men ikke når jeg tester i lagret procedure?

Medmindre du har indstillet UseAffected Rows forbindelsesstrengindstilling, den er som standard falsk . Dette betyder :

Derudover fra dokumentationen for ROW_COUNT funktion :

Således er UPDATE-brugeren sætning i din lagrede procedure vil returnere antallet af rækker, der blev fundet af forespørgslen, ikke det antal, der faktisk blev opdateret.

For at rette dette, enten:

  1. Indstil UseAffectedRows=true; i din forbindelsesstreng; dette kan forårsage ændringer til andre OPDATERING forespørgsler.
  2. Føj flere betingelser til WHERE klausul, f.eks. WHERE ... AND SELLER_IMAGE_ID !=SellerImageID AND SELLER_BUSINESS_LOGO_ID !=BusinessImageID , for at sikre, at rækken kun findes og opdateres, hvis den rent faktisk skal ændres.



  1. Beregn alder fra fødselsdag med oracle plsql trigger og indsæt alderen i tabellen

  2. Django oracle db indstillinger

  3. Base64 som metode til at rense brugerinput til Mysql

  4. RETNING:MySQL – VÆLG kommando nægtet bruger