Blogger

Senin, 01 Juli 2013

Perbedaan ExecuteNonQuery, ExecuteReader dan ExecuteScalar

Perbedaan ExecuteNonQuery, ExecuteReader dan ExecuteScalar Command VBNET
Mungkin sebaiknya anda baca dulu postingan saya yang ini : 1 dan 2. OK saya lanjutkan dan saya akan jelaskan beserta contohnya :

1.ExecuteNonQuery
Adalah perintah untuk mengeksekusi script SQL : DDL (Data Definition Language) dan/atau CRUD (Create Update Delete). jadi perintah SELECT (query) tidak dapat dilakukan oleh ExecuteNonQuery. Contoh :

   Dim cmd As New SqlClient.SqlCommand
   cmd.CommandText = "INSERT INTO DJIESOFT..." 
   atau cmd.CommandText = "CREATE DATABASE DJIESOFT..." 
   atau cmd.CommandText = "DELETE FROM DJIESOFT ..."
   cmd.ExecuteNonQuery()

Output dari ExecuteNonQuery adalah Integer, yaitu berapa banyak row/data yang ter-execute. Contohnya cukup tambahkan sintak ini (kelanjutan dari contoh diatas) :
Dim data_terhapus As Integer = cmd.ExecuteNonQuery()
atau
Dim data_teredit As Integer = cmd.ExecuteNonQuery()
MsgBox ("Data yang ter-Update : " + data_teredit.ToString)

2.ExecuteReader
Adalah kebalikan dari ExecuteNonQuery, yaitu hanya perintah SELECT (Query) saja yang dapat dilakukan. Output dari ExecuteReader adalah DataReader, jadi hasil perintah SELECT itu datanya akan disimpan ke variable DataReader yang sebelumnya kita deklarasikan. Contoh :
  
   Dim cmd As New SqlClient.SqlCommand
    cmd.CommandText = "SELECT * FROM DJIESOFT ..."
    Dim myReader As SqlClient.SqlDataReader = cmd.ExecuteReader
   
3.ExecuteScalar
Adalah dapat dikatakan mirip dengan ExecuteReader yaitu hanya perintah SELECT (Query) saja yang dapat dilakukan. Tetapi bedanya adalah outputnya adalah object, dimana ExecuteScalar hanya akan menghasilkan data pada kolom pertama dan baris pertama (first column & row). contoh :
saya mempunyai data :
KODE    NAMA    ALAMAT
66        djie    bandung
77        soft    jakarta

    Dim cmd As New SqlClient.SqlCommand
    cmd.CommandText = "SELECT KODE, NAMA, ALAMAT FROM DJIESOFT ..."
    Dim hasil As String = cmd.ExecuteScalar

maka outputnya adalah : hasil = 66 (ingat hanya kolom pertama dan baris pertama yang akan dihasilkan)
jadi perintah ExecuteScalar ini cocok untuk mengambil data pada kasus :
1.mencari nourut : "SELECT TOP 1 NOURUT FROM DJIESOFT ORDER BYNOURUT DESC"
2.mencari data yang sama (cek duplikat) : "SELECT 'ADA NIH' FROM DJIESOFT WHERE NAMA='DJIE'"
3.dan lain lain

Sumber : http://djiesoft.blogspot.com/2013/04/perbedaan-executenonquery-executereader.html

Tidak ada komentar:

Posting Komentar