Melakukan Query dengan VB.net ke SQL Server
ExecuteNonQuery()
Eksekusi perintah SQL (Query) yang tidak menghasilkan data kembalian. sebenarnya, nilai kembalian dari fungsi ini adalah banyaknya record yang telah di rubah, contoh delete, insert, dan update.
ExecuteScalar()
Eksekusi perintah SQL (Query) dengan mengambil nilai kembalian dari kolom pertama dan baris pertama, baris & kolom yang lainya tidak akan di ketahui hasilnya. Sehingga fungsi ini sangat cocok untuk melakukan query yang hanya menghasilkan satu nilai kembalian saja, seperti operasi aritmatika dan juga pada saat penghitungan kolom dan juga pengambilan 1 value saja.
Percobaan:
Buat tabel pada database master dengan attribute kolom seperti berikut ini:
Simpan tabel dengan nama TblPegawai
Pada program berikut, akan ada beberapa contoh penggunaan ExecuteScalar() dan juga ExecuteNonQuery(), buat project baru ConsolApplication, lalu ketikan kode berikut ini:
Imports System.Data.SqlClient
Module Module1
Sub Main()
Dim tabel = "TblPegawai"
Dim Query As New SqlCommand
Dim con As New SqlConnection _
("Data Source=(local)\sqlexpress; " & _
"Integrated Security=sspi; Database=master")
Try 'Membuka koneksi database
con.Open()
Console.WriteLine("Koneksi Berhasil.")
Query.Connection = con
Catch ex As Exception
Console.WriteLine("Error Membuka Koneksi:" _
& vbNewLine & ex.ToString)
Console.ReadKey()
End 'Jika gagal membuka koneksi,
'program berhenti disini.
End Try
'Mengambil jumlah record pada tabel,
' menggunakan ExecuteScalar()
Query.CommandText = "Select count(*) from " & tabel
Dim JmlhRec = Query.ExecuteScalar
Console.WriteLine("Jumlah Record: " & JmlhRec)
'Menambah Record pada tabel, ExecuteNonQuery()
Query.CommandText = "INSERT INTO " & tabel & _
" VALUES(1,'slamet','pwt','+6285678263')"
Console.WriteLine("Lakukan Query: " & Query.CommandText)
Dim res = Query.ExecuteNonQuery
Console.WriteLine("Berhasil memodifikasi " & res & " baris.")
'Ambil jumlah lagi
Query.CommandText = "Select count(*) from " & tabel
JmlhRec = Query.ExecuteScalar
Console.WriteLine("Jumlah Record: " & JmlhRec)
If con.State <> ConnectionState.Closed Then
con.Close()
End If
Console.ReadKey()
End Sub
End Module
Program di atas akan melakukan 3 hal yang paling utama, yatu:
- pertamakali program akan mengeksekusi Query yang menghasilkan jumlah record yang telah ada di dalam tabel dan menyimpan dalam variabel JmlRec, kemudian menampilkannya pada layar.
- Kedua, program mengeksekusi query yang berisi memasukan 1 record pada tabel, dan juga menampilkan berapa kolom yang di ubah/ditambah/hapus.
- Ketiga, program akan menampilkan lagi jumlah keseluruhan record yang ada dalam tabel. Hal ini akan menunjukan apakah benar2 terjadi perubahan pada isi record tabel tersebut atau tidak.
Untuk lebih jelasnya, silahkan jalankan program. Ketika kamu menjalankan program untuk yang pertama kali, kamu akan mendapati hasil seperti ini:
Setelah itu, coba jalankan program untuk yang ke dua kalinya.. jika kamu tidak merubah perintah SQL insertnya, maka pasti program kamu akan error, itu karena data yang kamu insertkan telah ada di dalam tabel:
Query.CommandText = "INSERT INTO " & tabel & _
" VALUES(1,'slamet','pwt','+6285678263')"
sedangkan tabel TblPegawai tidak membolehkan jika terdapat id yang sama, sehingga program kamu jadi error. Dan peng-inputan record ke dalam tabel tidak akan pernah dilakukan. Untuk menanganinya, kamu bisa merubah id yang di insertkan dengan id yang belum ada di dalam tabel, atau, sebelum kamu menjalankan program lagi, kamu bisa menghapus record yang tadi terlebih dahulu.
Untuk yang ExecuteReader, akan dibahas di POSTING selanjutnya :-)
0 comments:
Posting Komentar