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

Perché il ritorno di MySQL è sempre 1 nel codice C# ma non quando eseguo il test nella procedura memorizzata?

A meno che tu non abbia impostato UseAffectedRows stringa di connessione, il valore predefinito è false . Ciò significa :

Inoltre, dalla documentazione del ROW_COUNT funzione :

Pertanto, l'UPDATE user l'istruzione nella procedura memorizzata restituirà il numero di righe trovate dalla query, non il numero effettivamente aggiornato.

Per risolvere questo problema:

  1. Imposta UseAffectedRows=true; nella stringa di connessione; ciò potrebbe causare modifiche ad altri UPDATE domande.
  2. Aggiungi più condizioni a WHERE clausola, ad es. WHERE ... AND SELLER_IMAGE_ID != SellerImageID AND SELLER_BUSINESS_LOGO_ID != BusinessImageID , per assicurarsi che la riga venga trovata e aggiornata solo se è effettivamente necessario modificarla.