Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

ExecuteNonQuery mengembalikan -1 saat menggunakan sql COUNT meskipun ada string kueri

Berdasarkan MSDN:

Untuk pernyataan UPDATE, INSERT, dan DELETE, nilai yang dikembalikan adalah jumlah baris yang dipengaruhi oleh perintah. Saat pemicu ada pada tabel yang disisipkan atau diperbarui, nilai yang dikembalikan mencakup jumlah baris yang terpengaruh oleh operasi penyisipan atau pembaruan dan jumlah baris yang terpengaruh oleh pemicu atau pemicu. Untuk semua jenis pernyataan lainnya, nilai kembaliannya adalah -1. Jika terjadi rollback, nilai kembaliannya juga -1.

Anda ingin mengembalikan jumlah baris yang terpengaruh oleh perintah dan menyimpannya ke int variabel tetapi karena jenis pernyataannya adalah select sehingga mengembalikan -1 .

Solusi :Jika Anda ingin mendapatkan jumlah baris yang dipengaruhi oleh perintah SELECT dan menyimpannya ke variabel int, Anda dapat menggunakan 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. Bagaimana mengonversi kolom stempel waktu SQL Server ke format datetime

  2. Kueri Indeks Pembuatan Ulang SQL Server

  3. Bagaimana saya bisa terhubung ke database eksternal dari pernyataan sql atau prosedur tersimpan?

  4. Pilih Data melalui Fungsi Bernilai Tabel di SQL Server

  5. TAMPILKAN SEMUA data Tanggal antara dua tanggal; jika tidak ada baris untuk tanggal tertentu maka tampilkan nol di semua kolom