Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao trả về của MySQL luôn là 1 trong mã C # nhưng không phải khi tôi kiểm tra trong thủ tục được lưu trữ?

Trừ khi bạn đã đặt UseAffectedRows tùy chọn chuỗi kết nối, nó mặc định là false . Điều này có nghĩa là :

Ngoài ra, từ tài liệu của ROW_COUNT chức năng :

Do đó, người dùng UPDATE user câu lệnh trong thủ tục được lưu trữ của bạn sẽ trả về số hàng được tìm thấy bởi truy vấn, không phải số hàng đã thực sự được cập nhật.

Để khắc phục điều này, hãy:

  1. Đặt UseAffectedRows=true; trong chuỗi kết nối của bạn; điều này có thể gây ra các thay đổi đối với UPDATE user khác truy vấn.
  2. Thêm các điều kiện khác vào WHERE mệnh đề, ví dụ:WHERE ... AND SELLER_IMAGE_ID != SellerImageID AND SELLER_BUSINESS_LOGO_ID != BusinessImageID , để đảm bảo rằng hàng chỉ được tìm thấy và cập nhật nếu nó thực sự cần thay đổi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các bước cài đặt MySQL8 trên CentOS

  2. Sử dụng Mysql trong dòng lệnh trong osx - không tìm thấy lệnh?

  3. Làm cách nào để sử dụng CẬP NHẬT KHÓA KÉP TRONG PDO với mysql?

  4. Làm cách nào để bạn chỉnh sửa một thủ tục được lưu trữ trong MySQL?

  5. Cách phù hợp để lấy tên người dùng và mật khẩu từ chuỗi kết nối?