ExecuteScalarbiasanya digunakan saat kueri Anda mengembalikan satu nilai. Jika mengembalikan lebih banyak, maka hasilnya adalah kolom pertama dari baris pertama. Contohnya mungkin SELECT @@IDENTITY AS 'Identity'.
ExecuteReaderdigunakan untuk hasil apa pun yang ditetapkan dengan beberapa baris / kolom (mis., SELECT col1, col2 from sometable).
ExecuteNonQuery biasanya digunakan untuk pernyataan SQL tanpa hasil (misalnya, UPDATE, INSERT, dll.).
ExecuteScalar akan menjadi jenis kueri yang akan mengembalikan satu nilai.
Contohnya akan mengembalikan id yang dihasilkan setelah memasukkan.
INSERT INTO my_profile (Address) VALUES ('123 Fake St.');
SELECT CAST(scope_identity() AS int)
ExecuteReader memberi Anda pembaca data kembali yang akan memungkinkan Anda membaca semua kolom hasil secara berurutan.
Contohnya akan menarik informasi profil untuk satu atau lebih pengguna.
SELECT * FROM my_profile WHERE id = '123456'
ExecuteNonQuery adalah SQL apa pun yang tidak mengembalikan nilai, tetapi sebenarnya melakukan beberapa bentuk pekerjaan seperti menyisipkan menghapus atau memodifikasi sesuatu.
Contohnya adalah memperbarui profil pengguna di database.
UPDATE my_profile SET Address = '123 Fake St.' WHERE id = '123456'
Sepertinya Anda dapat menggunakan ExecuteReader untuk melakukan pekerjaan yang dilakukan oleh ExecuteScalar & ExecuteNonQuery, jadi mengapa menggunakan dua lainnya? ada keuntungan kinerja?
pengguna20358
Salah satu alasan untuk menghindari penggunaan ExecuteReader secara berlebihan adalah karena hal itu akan membuat pembaca tetap ada sampai Anda selesai menggunakannya. Dengan semua ini, Anda ingin mengetahui beberapa informasi spesifik tentang cara kerjanya untuk menggunakannya secara efektif. Apa yang saya uraikan di sini adalah beberapa pedoman yang bagus.
Brendan Enrick
9
Dari dokumen (catatan: MSDN adalah sumber daya yang berguna ketika Anda ingin tahu apa saja yang bisa dilakukan!):
Gunakan metode ExecuteScalar untuk mengambil satu nilai (misalnya, nilai agregat) dari database. Ini memerlukan lebih sedikit kode daripada menggunakan metode ExecuteReader, lalu menjalankan operasi yang Anda perlukan untuk menghasilkan nilai tunggal menggunakan data yang dikembalikan oleh SqlDataReader.
Anda bisa menggunakan ExecuteNonQuery untuk melakukan operasi katalog (misalnya, membuat kueri struktur database atau membuat objek database seperti tabel), atau untuk mengubah data dalam database tanpa menggunakan DataSet dengan menjalankan pernyataan UPDATE, INSERT, atau DELETE.
ExecuteScalar secara konseptual mengembalikan kolom paling kiri dari baris pertama kumpulan hasil dari kueri; Anda bisa ExecuteScalar staf SELECT * FROM, tetapi Anda hanya akan mendapatkan sel pertama dari baris yang dihasilkan Biasanya digunakan untuk kueri yang mengembalikan satu nilai. Saya tidak 100% yakin tentang SQLServer tetapi di Oracle, Anda tidak menggunakannya untuk menjalankan FUNCTION (kode database yang mengembalikan nilai tunggal) dan mengharapkannya memberi Anda nilai kembali fungsi meskipun fungsi mengembalikan nilai tunggal. Namun, jika Anda menjalankan fungsi sebagai bagian dari kueri, misalnya SELECT SUBSTR ('abc', 1, 1) FROM DUAL maka itu akan memberikan nilai kembali berdasarkan fakta bahwa nilai kembali disimpan di paling kiri atas sel dari kumpulan baris yang dihasilkan
ExecuteNonQuery akan digunakan untuk menjalankan database yang tersimpan prosedur, fungsi dan query yang mengubah data (INSERT / UPDATE / DELETE) atau memodifikasi struktur database (CREATE TABLE ...). Biasanya nilai kembalian dari panggilan tersebut adalah indikasi berapa banyak baris yang terpengaruh oleh operasi tetapi periksa dokumentasi DB untuk menjamin ini.
ExecuteReader() menjalankan kueri SQL yang mengembalikan objek DBDataReader penyedia data yang menyediakan akses hanya maju dan hanya baca untuk hasil kueri.
ExecuteScalar()mirip dengan ExecuteReader()metode yang dirancang untuk kueri tunggal seperti memperoleh jumlah catatan.
ExecuteNonQuery() jalankan non query yang berfungsi dengan buat, hapus, perbarui, sisipkan)
Metode ExecuteNonQuery ini hanya akan digunakan untuk menyisipkan, memperbarui dan menghapus, Membuat, dan pernyataan SET. Metode ExecuteNonQuery akan mengembalikan jumlah baris yang dipengaruhi dengan operasi INSERT, DELETE atau UPDATE.
ExecuteScalar
Sangat cepat untuk mengambil nilai tunggal dari database. Execute Scalar akan mengembalikan nilai kolom tunggal baris tunggal yaitu nilai tunggal, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah.
ExecuteReader
Execute Reader akan digunakan untuk mengembalikan kumpulan baris, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah. Yang ini hanya pengambilan rekaman ke depan dan digunakan untuk membaca nilai tabel dari awal hingga akhir.
Metode ExecuteNonQuery akan mengembalikan jumlah baris yang dipengaruhi dengan operasi INSERT, DELETE atau UPDATE. Metode ExecuteNonQuery ini hanya akan digunakan untuk menyisipkan, memperbarui dan menghapus, Membuat, dan pernyataan SET. (Baca lebih banyak)
ExecuteScalar akan mengembalikan nilai kolom tunggal baris tunggal yaitu nilai tunggal, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah. Sangat cepat untuk mengambil nilai tunggal dari database. (Baca lebih banyak)
ExecuteReader akan digunakan untuk mengembalikan kumpulan baris, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah. Yang ini hanya pengambilan rekaman ke depan dan digunakan untuk membaca nilai tabel dari awal hingga akhir. (Baca lebih banyak)
Jawaban:
ExecuteScalar
biasanya digunakan saat kueri Anda mengembalikan satu nilai. Jika mengembalikan lebih banyak, maka hasilnya adalah kolom pertama dari baris pertama. Contohnya mungkinSELECT @@IDENTITY AS 'Identity'
.ExecuteReader
digunakan untuk hasil apa pun yang ditetapkan dengan beberapa baris / kolom (mis.,SELECT col1, col2 from sometable
).ExecuteNonQuery
biasanya digunakan untuk pernyataan SQL tanpa hasil (misalnya, UPDATE, INSERT, dll.).sumber
ExecuteNonQuery
dapat mengembalikan jumlah baris yang terpengaruh.ExecuteNonQuery ():
ExecuteReader ():
ExecuteScalar ():
URL Referensi:
http://nareshkamuni.blogspot.in/2012/05/what-is-difference-between.html
sumber
Masing-masing adalah jenis eksekusi yang berbeda.
ExecuteScalar akan menjadi jenis kueri yang akan mengembalikan satu nilai.
Contohnya akan mengembalikan id yang dihasilkan setelah memasukkan.
INSERT INTO my_profile (Address) VALUES ('123 Fake St.'); SELECT CAST(scope_identity() AS int)
ExecuteReader memberi Anda pembaca data kembali yang akan memungkinkan Anda membaca semua kolom hasil secara berurutan.
Contohnya akan menarik informasi profil untuk satu atau lebih pengguna.
SELECT * FROM my_profile WHERE id = '123456'
ExecuteNonQuery adalah SQL apa pun yang tidak mengembalikan nilai, tetapi sebenarnya melakukan beberapa bentuk pekerjaan seperti menyisipkan menghapus atau memodifikasi sesuatu.
Contohnya adalah memperbarui profil pengguna di database.
UPDATE my_profile SET Address = '123 Fake St.' WHERE id = '123456'
sumber
Dari dokumen (catatan: MSDN adalah sumber daya yang berguna ketika Anda ingin tahu apa saja yang bisa dilakukan!):
ExecuteScalar
ExecuteReader
... dan dari SqlDataReader ...
ExecuteNonQuery
sumber
Untuk menambah apa yang orang lain posting:
ExecuteScalar secara konseptual mengembalikan kolom paling kiri dari baris pertama kumpulan hasil dari kueri; Anda bisa ExecuteScalar staf SELECT * FROM, tetapi Anda hanya akan mendapatkan sel pertama dari baris yang dihasilkan Biasanya digunakan untuk kueri yang mengembalikan satu nilai. Saya tidak 100% yakin tentang SQLServer tetapi di Oracle, Anda tidak menggunakannya untuk menjalankan FUNCTION (kode database yang mengembalikan nilai tunggal) dan mengharapkannya memberi Anda nilai kembali fungsi meskipun fungsi mengembalikan nilai tunggal. Namun, jika Anda menjalankan fungsi sebagai bagian dari kueri, misalnya SELECT SUBSTR ('abc', 1, 1) FROM DUAL maka itu akan memberikan nilai kembali berdasarkan fakta bahwa nilai kembali disimpan di paling kiri atas sel dari kumpulan baris yang dihasilkan
ExecuteNonQuery akan digunakan untuk menjalankan database yang tersimpan prosedur, fungsi dan query yang mengubah data (INSERT / UPDATE / DELETE) atau memodifikasi struktur database (CREATE TABLE ...). Biasanya nilai kembalian dari panggilan tersebut adalah indikasi berapa banyak baris yang terpengaruh oleh operasi tetapi periksa dokumentasi DB untuk menjamin ini.
sumber
ExecuteReader()
menjalankan kueri SQL yang mengembalikan objek DBDataReader penyedia data yang menyediakan akses hanya maju dan hanya baca untuk hasil kueri.ExecuteScalar()
mirip denganExecuteReader()
metode yang dirancang untuk kueri tunggal seperti memperoleh jumlah catatan.ExecuteNonQuery()
jalankan non query yang berfungsi dengan buat, hapus, perbarui, sisipkan)sumber
ExecuteNonQuery
Metode ExecuteNonQuery ini hanya akan digunakan untuk menyisipkan, memperbarui dan menghapus, Membuat, dan pernyataan SET. Metode ExecuteNonQuery akan mengembalikan jumlah baris yang dipengaruhi dengan operasi INSERT, DELETE atau UPDATE.
ExecuteScalar
Sangat cepat untuk mengambil nilai tunggal dari database. Execute Scalar akan mengembalikan nilai kolom tunggal baris tunggal yaitu nilai tunggal, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah. ExecuteReader
Execute Reader akan digunakan untuk mengembalikan kumpulan baris, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah. Yang ini hanya pengambilan rekaman ke depan dan digunakan untuk membaca nilai tabel dari awal hingga akhir.
sumber
Metode ExecuteNonQuery akan mengembalikan jumlah baris yang dipengaruhi dengan operasi INSERT, DELETE atau UPDATE. Metode ExecuteNonQuery ini hanya akan digunakan untuk menyisipkan, memperbarui dan menghapus, Membuat, dan pernyataan SET. (Baca lebih banyak)
ExecuteScalar akan mengembalikan nilai kolom tunggal baris tunggal yaitu nilai tunggal, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah. Sangat cepat untuk mengambil nilai tunggal dari database. (Baca lebih banyak)
ExecuteReader akan digunakan untuk mengembalikan kumpulan baris, pada eksekusi SQL Query atau prosedur Tersimpan menggunakan objek perintah. Yang ini hanya pengambilan rekaman ke depan dan digunakan untuk membaca nilai tabel dari awal hingga akhir. (Baca lebih banyak)
sumber
ExecuteNonQuery: biasanya digunakan ketika tidak ada yang dikembalikan dari pernyataan Sql seperti operasi penyisipan, pembaruan, penghapusan.
ExecuteScalar:
Ini akan digunakan ketika kueri Sql mengembalikan nilai tunggal.
ExecuteReader
Ini akan digunakan ketika kueri Sql atau Prosedur Tersimpan mengembalikan beberapa baris / kolom
untuk informasi lebih lanjut Anda dapat klik di sini http://www.dotnetqueries.com/Article/148/-difference-between-executescalar-executereader-executenonquery
sumber