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

ExecuteNonQuery trả về -1 khi sử dụng sql COUNT bất chấp chuỗi truy vấn

Dựa trên MSDN:

Đối với các câu lệnh UPDATE, INSERT và DELETE, giá trị trả về là số hàng bị ảnh hưởng bởi lệnh. Khi trình kích hoạt tồn tại trên bảng đang được chèn hoặc cập nhật, giá trị trả về bao gồm số hàng bị ảnh hưởng bởi cả thao tác chèn hoặc cập nhật và số hàng bị ảnh hưởng bởi trình kích hoạt hoặc trình kích hoạt. Đối với tất cả các loại câu lệnh khác, giá trị trả về là -1. Nếu quá trình khôi phục xảy ra, giá trị trả về cũng là -1.

Bạn muốn trả lại số hàng bị ảnh hưởng bởi lệnh và lưu nó vào int biến nhưng vì loại câu lệnh là select vì vậy nó trả về -1 .

Giải pháp :Nếu bạn muốn lấy số hàng bị ảnh hưởng bởi lệnh SELECT và lưu nó vào một biến int, bạn có thể sử dụng ExecuteScalar .

var theCount = (int)cmd.ExecuteScalar();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thực hiện tìm kiếm phân biệt chữ hoa chữ thường trong mệnh đề WHERE (Tôi đang sử dụng SQL Server)?

  2. Cách tốt nhất để thực hiện logic câu lệnh chữ hoa chữ thường lồng nhau trong SQL Server

  3. Làm cách nào để bạn đếm số lần xuất hiện của một chuỗi con nhất định trong một varchar SQL?

  4. Sự khác biệt giữa Truy vấn con và Truy vấn con có Tương quan

  5. 2 cách tạo cơ sở dữ liệu trên máy chủ được liên kết bằng T-SQL