Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego MySQL zwraca zawsze 1 w kodzie C#, ale nie, gdy testuję w procedurze składowanej?

Chyba że ustawiłeś UseAffectedRows opcja ciągu połączenia, domyślnie false . Oznacza to :

Dodatkowo z dokumentacji ROW_COUNT funkcja :

Tak więc UPDATE user instrukcja w procedurze składowanej zwróci liczbę wierszy znalezionych przez zapytanie, a nie liczbę faktycznie zaktualizowanych.

Aby to naprawić:

  1. Ustaw UseAffectedRows=true; w ciągu połączenia; może to spowodować zmiany w innych UPDATE zapytania.
  2. Dodaj więcej warunków do WHERE klauzula, np. WHERE ... AND SELLER_IMAGE_ID != SellerImageID AND SELLER_BUSINESS_LOGO_ID != BusinessImageID , aby upewnić się, że wiersz zostanie znaleziony i zaktualizowany tylko wtedy, gdy rzeczywiście trzeba go zmienić.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy klucz obcy może odwoływać się do nieunikalnego indeksu?

  2. Promise-MySQL nie może zwolnić połączeń z powrotem do puli

  3. Przechowywanie uprawnień aplikacji w bazie danych

  4. Usuwanie liczb z ciągu w mysql

  5. Yii2 wyświetla dane dla każdej pętli