Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi le retour MySQL est-il toujours 1 dans le code C # mais pas lorsque je teste en procédure stockée?

Sauf si vous avez défini le UseAffectedRows option de chaîne de connexion, la valeur par défaut est false . Cela signifie :

De plus, à partir de la documentation du ROW_COUNT fonction :

Ainsi, l'utilisateur UPDATE user L'instruction dans votre procédure stockée renverra le nombre de lignes qui ont été trouvées par la requête, et non le nombre qui a été réellement mis à jour.

Pour résoudre ce problème, vous pouvez :

  1. Définir UseAffectedRows=true; dans votre chaîne de connexion ; cela peut entraîner des modifications d'autres UPDATE user requêtes.
  2. Ajouter plus de conditions au WHERE clause, par exemple, WHERE ... AND SELLER_IMAGE_ID != SellerImageID AND SELLER_BUSINESS_LOGO_ID != BusinessImageID , pour vous assurer que la ligne n'est trouvée et mise à jour que si elle doit réellement être modifiée.