sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué el retorno de MySQL siempre es 1 en el código C # pero no cuando pruebo en el procedimiento almacenado?

A menos que haya configurado UseAffectedRows opción de cadena de conexión, por defecto es false . Esto significa :

Además, de la documentación del ROW_COUNT función :

Así, el UPDATE user declaración en su procedimiento almacenado devolverá la cantidad de filas que encontró la consulta, no la cantidad que realmente se actualizó.

Para arreglar esto, ya sea:

  1. Establecer UseAffectedRows=true; en su cadena de conexión; esto puede causar cambios en otros UPDATE consultas.
  2. Agregue más condiciones al WHERE cláusula, por ejemplo, WHERE ... AND SELLER_IMAGE_ID != SellerImageID AND SELLER_BUSINESS_LOGO_ID != BusinessImageID , para asegurarse de que la fila solo se encuentre y actualice si realmente necesita cambiar.