Laporan Pemrogaman Chapter 11
-
Author
ajeng-yona-fallah -
Category
Documents
-
view
224 -
download
0
Embed Size (px)
description
Transcript of Laporan Pemrogaman Chapter 11
-
LAPORAN PEMROGAMAN
BASIS DATA JARINGAN
Execute Commands
Disusun oleh:
Ajeng Yona Falah
Informatika 3A
3.34.12.0.01
PROGAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2014/2015
-
I. Tujuan Instruksional Khusus
Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
1. Menambah, memperbarui, atau menghapus data menggunakan Command.
2. Memodifikasi database dengan beberapa Command
3. Membuat metode untuk dikirimkan kedatabase menggunakan Command.
II. Dasar Teori
A. Membuat Command
Kita dapat membuat sebuah perintah (command) menggunakan konstruktor
SqlCommand ataupun menggunakan metode yang menciptakan objek untuk
Kita gunakan.
B. Menghubungkan Command dengan Connection
Agar perintah yang kita buat dapat dieksekusi ke sebuah database, setiap
perintah tersebut harus dikoneksikan ke database. Kita dapat melakukan ini
dengan membuat properti Connection, dan untuk menghemat sumber daya,
beberapa perintah dapat menggunakan koneksi yang sama. Kita memiliki
beberapa cara untuk mengatur koneksi antara command ke database.
C. Menetapkan Teks ke Sebuah Command
Setiap perintah memiliki properti, CommandText, yang berisi SQL untuk
kemudian dieksekusi. Anda dapat membuat properti ini secara langsung atau
menentukannya ketika membangun perintah.
D. Eksekusi Command
Perintah tidak akan bias digunakan kecuali jika Kita dapat mengeksekusi
mereka, jadi mari kita lihat sekarang. Perintah memiliki beberapa metode yang
berbeda untuk melaksanakan SQL. Perbedaan antara metode tergantung pada
hasil yang Kitaa harapkan dari SQL. Query mengembalikan sekumpulan nilai
(result sets), tetapi INSERT, UPDATE, dan DELETE tidak. Kita menentukan
metode yang akan digunakan dengan mempertimbangkan hasil apa yang Kita
harapkan (lihat Tabel 11-1).
-
SQL yang Kita gunakan dalam contoh tersebut, mengembalikan satu nilai, dari
jumlah karyawan. Dilihat dari Tabel 11-1, Kita dapat melihat bahwa Kita harus
menggunakan metode ExecuteScalar dari SqlCommand untuk dapat
mengembalikan suatu hasil.
E. Eksekusi Command dengan Beberapa Hasil
Untuk queries di mana Anda mengharapkan dapat menghasilkan beberapa baris
dan kolom, gunakan metode ExecuteReader ().
ExecuteReader () mengembalikan sebuah data reader, sebuah instance dari
kelas SqlDataReader. Data Reader memiliki metode yang memungkinkan Anda
untuk membaca baris berturut-turut dalam hasil set dan mengambil nilai kolom
secara individu.
F. Eksekusi Statements
Metode ExecuteNonQuery, bertugas mengeksekusi pernyataan SQL bukan
pertanyaan.
G. Parameter Command
Bila Anda memasukkan baris baru ke Tabel Employees, Anda harus membuat
kode dari nilai tersebut. Meskipun SQL berlaku secara sempurna, itu adalah
sesuatu yang tidak pernah anda inginkan (atau tidak diperlukan) untuk
dilakukan. Anda harus dapat menyimpan nilai-nilai apa saja yang sesuai pada
waktu tertentu. Ada dua pendekatan untuk melakukan ini. Keduanya masuk
akal, tapi jauh lebih efisien daripada yang lain.
Alternatif yang kurang efisien adalah untuk secara dinamis membangun sebuah
pernyataan SQL, menghasilkan string yang berisi semua informasi yang
diperlukan dalam properti CommandText. Misalnya, Anda bisa melakukan
sesuatu seperti ini:
Dim fname As String = "Zachariah"
Dim lname As String = "Zinn"
Dim vals As String = "('" & fname & "'," & "'" & lname & "')"
Dim sqlins As String = "insert into employees" & _
-
"(firstname,lastname)values" & vals
dan kemudian menetapkan sql dalam beberapa perintah CommandText sebelum
mengeksekusi pernyataan tersebut.
Cara yang lebih baik untuk menangani ini adalah dengan Command parameters.
Command Parameters adalah sebuah tempat dalam command teks di mana nilai
akan diganti. Dalam SQL Server, named parameters yang digunakan. Mereka
mulai dengan @ diikuti dengan nama parameter tanpa campur tangan ruang.
Jadi, seletah INSERT statement, diikuti dengan parameter @MyName dan
@MyNumber.
INSERT INTO MyTable VALUES (@MyName, @MyNumber)
Command Parameters memiliki beberapa keunggulan:
Pemetaan antara variabel dan di mana mereka digunakan dalam SQL lebih
jelas.
Parameter membiarkan Anda menggunakan definisi tipe yang spesifik
untuk ADO.NET data provider tertentu untuk memastikan bahwa variabel
yang dipetakan ke jenis SQL data yang benar.
Parameter membiarkan Anda menggunakan metode yang dapat membuat
kode Anda berjalan lebih cepat, karena SQL dalam kondisi "siap" perintah
yang di parsing oleh SQL Server hanya yang pertama kali ini dijalankan.
Eksekusi berikutnya menjalankan SQL yang sama, hanya mengubah
parameter nilainya saja.
Parameter digunakan secara luas dalam teknik pemrograman lain, seperti
menggunakannya untuk menyimpan prosedur dan bekerja dengan data yang
tidak teratur.
III. Alat dan Bahan
1. SQL Server 2014
2. Visual Basic NET
3. Northwind Sample Database
IV. Langkah Kerja
A. Membuat Perintah Menggunakan Constructor
-
1. Buat project Visual Basic Console Apllication baru dengan nama
Chapter11.
2. Ubah nama Project Chapter11 menjadi CommandSql. Ubah nana dari file
Module1.vb menjadi CommandSql.vb
3. Ketikkan kode berikut ini pada halaman kode CommandSql.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module CommandSql Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command Dim cmd As SqlCommand = New SqlCommand Console.WriteLine("Command created.") Try ' Open connection conn.Open() Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try
-
End Sub End Module
4. Jalankan program dengan menekan tombol Ctrl+F5.
B. Setting Koneksi Property
1. Tambahkan kode berikut pada kode program CommandSql.vb yang telah dibuat
sebelumnya
' Open connection conn.Open() 'connect command to connection cmd.Connection = conn Console.WriteLine("Connnected command to this connection.")
2. Jalankan program dengan menekan tombol Ctrl+F5, amati perubahannya,
C. Setting CommandText Property
1. Tambahkan kode berikut pada kode program CommandSql.vb yang telah dibuat
sebelumnya
' Open connection conn.Open() 'connect command to connection cmd.Connection = conn Console.WriteLine("Connnected command to this connection.") ' associate SQL with command cmd.CommandText = "select count(*)from employees" Console.WriteLine("Ready to execute SQL:" & cmd.CommandText)
2. Jalankan program dengan menekan tombol Ctrl+F5, amati perubahannya,
D. Menggunakan Metode ExecuteScalar
1. Buat project Visual Basic Console Application baru pada solution
Chapter11 dengan nama CommandScalar.
2. Ubah nama file Module1.vb menjadi CommandScalar.vb
-
3. Ketikkan kode berikut ini pada halaman kode CommandScalar.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module CommandScalar Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "select count(*) from employees" Dim cmd As SqlCommand = New SqlCommand(sql, conn) Console.WriteLine("Command created and connected.") Try 'Open connection conn.Open() 'execute query Console.WriteLine("Number of Employees is {0}", cmd.ExecuteScalar()) Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try End Sub End Module
4. Jalankan program dengan menekan tombol Ctrl+F5.
E. Menggunakan Metode ExecuteReader
1. Buat project Visual Basic Console Application baru pada solution
Chapter11 dengan nama CommandReader.
-
2. Ubah nama file Module1.vb menjadi CommandReader.vb
3. Ketikkan kode berikut ini pada halaman kode CommandReader.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module CommandReader Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "select firstname,lastname from employees" Dim cmd As SqlCommand = New SqlCommand(sql, conn) Console.WriteLine("Command created and connected.") Try 'Open connection conn.Open() 'execute query Dim rdr As SqlDataReader = cmd.ExecuteReader While (rdr.Read) Console.WriteLine("Employee name: {0} {1}", rdr.GetValue(0), rdr.GetValue(1)) End While Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close()
-
Console.WriteLine("Connection closed.") End Try End Sub End Module
4. Jalankan program dengan menekan tombol Ctrl+F5.
F. Menggunakan Metode ExecuteNonQuery
1. Buat project Visual Basic Console Application baru pada solution
Chapter11 dengan nama CommandNonQuery.
2. Ubah nama file Module1.vb menjadi CommandNonQuery.vb
3. Ketikkan kode berikut ini pada halaman kode CommandNonQuery.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module CommandNonQuery Sub Main() 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=AJENG; Integrated Security=True; database=northwind") 'define scalar query Dim sqlqry As String = "select count(*)from employees" 'define insert statement Dim sqlins As String = "insert into employees (firstname,lastname)values('Zachariah', 'Zinn')"
-
'define delete statement Dim sqldel As String = "delete from employees where firstname = 'Zachariah' and lastname = 'Zinn'" 'create commands Dim cmdqry As SqlCommand = New SqlCommand(sqlqry, conn) Dim cmdnon As SqlCommand = New SqlCommand(sqlins, conn) Console.WriteLine("Command created and connected.") Try 'Open connection conn.Open() 'execute query to get number of employees Console.WriteLine("Before INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to insert an employee Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to delete an employee cmdnon.CommandText = sqldel Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After DELETE: Number of employees {0}", cmdqry.ExecuteScalar()) Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try End Sub End Module
4. Jalankan program dengan menekan tombol Ctrl+F5.
G. Menggunakan Command Parameter
1. Buat project Visual Basic Console Application baru pada solution
Chapter11 dengan nama CommandParameters.
-
2. Ubah nama file Module1.vb menjadi CommandParameters.vb
3. Ketikkan kode berikut ini pada halaman kode CommandParameters.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module CommandParameters Sub Main() 'set up rudimentary data Dim fname As String = "Zachariah" Dim lname As String = "Zinn" 'create connection Dim conn As SqlConnection = New SqlConnection("Data Source=.\sqlexpress; Integrated Security=True; database=northwind") 'define scalar query Dim sqlqry As String = "select count(*)from employees" 'define insert statement Dim sqlins As String = "insert into employees (firstname,lastname)values(@fname,@lname)" 'define delete statement Dim sqldel As String = "delete from employees where firstname = @fname and lastname = @lname" 'create commands Dim cmdqry As SqlCommand = New SqlCommand(sqlqry, conn) Dim cmdnon As SqlCommand = New SqlCommand(sqlins, conn) cmdnon.Prepare() 'add parameters to the command for statements cmdnon.Parameters.Add("@fname", SqlDbType.NVarChar, 10) cmdnon.Parameters.Add("@lname", SqlDbType.NVarChar, 20) Try 'Open connection conn.Open() 'execute query to get number of employees Console.WriteLine("Before INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to insert an employee cmdnon.Parameters("@fname").Value = fname cmdnon.Parameters("@lname").Value = lname Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After INSERT: Number of employees {0}", cmdqry.ExecuteScalar()) 'execute nonquery to delete an employee cmdnon.CommandText = sqldel Console.WriteLine("Executing statement {0}", cmdnon.CommandText) cmdnon.ExecuteNonQuery() Console.WriteLine("After DELETE: Number of employees {0}", cmdqry.ExecuteScalar())
-
Catch ex As SqlException Console.WriteLine(ex) Finally ' Close connection conn.Close() Console.WriteLine("Connection closed.") End Try End Sub End Module
4. Jalankan program dengan menekan tombol Ctrl+F5.
V. Lembar Kerja
No Judul / Hasil / Analisa
1 Membuat Perintah Menggunakan Constructor
Kita membuat sebuah SqlCommand menggunakan default constructor dan
menampilkan pesan yang menandakan bahwa command telah dibuat. Pada
contoh ini, command yang digunakan kosong. Ini tidak berhubungan
dengan connection, dan tidak memiliki sekumpulan nilai.
2 Setting Koneksi Property
Kita memulai kode dengan membuat connection dan command. Keduanya
tidak saling terhubung satu sama lain. Hal ini terjadi hanya bila kita
menetapkan connection ke properti commands connection bahwa
keduanya menjadi terhubung.
3 Setting CommandText Property
-
CommandText hanyalah sebuah string, jadi kita bisa menampilkannya
dengan menggunakan Console.Writeline() seperti sting lainnya. SQL akan
menghasilkan beberapa nomer dari tabel employees ketika kita
mengeksekusi programnya.
4 Menggunakan Metode ExecuteScalar
ExecuteScalar() mengambil properti dari CommandText dan mengirimnya
ke database menggunakan properti Commands Connection. Itu
menghasilkan nilai sebagai sebuah singgle object, yang kita tampilkan
menggunakan Console.Writeline().
5 Menggunakan Metode ExecuteReader
ExecuteReader() mengambil property dari CommandText dan
mengirimnya ke database menggunakan Connection dari property
Connection. ExecuteReader() menghasilkan sebuah SqlDataReader object,
yang membaca method dan menghasilkan sekumpulan data dari database.
6 Menggunakan Metode ExecuteNonQuery
-
ExecuteNonQuery() menghasilkan sebuah nilai integer yang menandakan
berapa banyak baris yang dihasilkan dari command.
7 Menggunakan Command Parameter
Dalam contoh ini, kita membuat kode dengan menggunkak commend
seperti biasanya, hanya saja kali ini kita menggunakan parameter intuk
memeberikan nilai inputan, dan mendapatkan nilai output.
VI. Kesimpulan
ExecuteScalar() mengambil properti dari CommandText dan mengirimnya ke
database menggunakan properti Commands Connection. ExecuteScalar()
menghasilkan nilai sebagai sebuah singgle object, yang kita tampilkan
menggunakan Console.Writeline().
ExecuteReader() mengambil property dari CommandText dan mengirimnya ke
database menggunakan Connection dari property Connection. ExecuteReader()
menghasilkan sebuah SqlDataReader object, yang membaca method dan
menghasilkan sekumpulan data dari database.
ExecuteNonQuery() menghasilkan sebuah nilai integer yang menandakan
berapa banyak baris yang dihasilkan dari command.