Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que o retorno do MySQL é sempre 1 no código C #, mas não quando testo no procedimento armazenado?


A menos que você tenha definido o UseAffectedRows opção de string de conexão, o padrão é false . Isso significa :

Além disso, da documentação do ROW_COUNT função :

Assim, o usuário UPDATE user instrução em seu procedimento armazenado retornará o número de linhas que foram encontradas pela consulta, não o número que foi realmente atualizado.

Para corrigir isso:
  1. Definir UseAffectedRows=true; em sua string de conexão; isso pode causar alterações em outros UPDATE user consultas.
  2. Adicione mais condições ao WHERE cláusula, por exemplo, WHERE ... AND SELLER_IMAGE_ID != SellerImageID AND SELLER_BUSINESS_LOGO_ID != BusinessImageID , para garantir que a linha seja encontrada e atualizada apenas se realmente precisar ser alterada.