Jenis kode yang Anda tulis sangat rentan terhadap SQL Injection. Daripada memproses pembaca seperti Anda, Anda bisa menggunakan Properti RecordsAffected untuk menemukan jumlah baris di pembaca.
EDIT:
Setelah melakukan riset, perbedaan yang Anda lihat adalah perbedaan desain antara koneksi konteks dan koneksi biasa. Peter Debetta menulis blog tentang ini dan menulis:
"Koneksi konteks ditulis sedemikian rupa sehingga hanya mengambil satu baris pada satu waktu, jadi untuk masing-masing dari 20 juta beberapa baris ganjil, kode meminta setiap baris satu per satu. Menggunakan koneksi non-konteks, bagaimanapun, ia meminta senilai 8K baris pada satu waktu."
http://sqlblog.com /blogs/peter_debetta/archive/2006/07/21/context-connection-is-slow.aspx