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();