Pengenalan ADO.NET

Standard

ADO.NET merupakan NET library sebagai bagian dari DotNet Framework
yang bertanggung jawab untuk memberikan kemudahan dalam
pengaksesan basis data secara universal yang tidak tergantung
oleh jenis basis data nya.

ADO.NET menyediakan kumpulan class-class yang tergabung dalam
beberapa namespace. Namespace adalah pengelompokkan secara logik
class-class kedalam nama tertentu. Tiap jenis basis data memiliki
namespace yang unik yang terdiri dari class-class spesifik

Misal untuk DBMS MS Access namespace yang digunakan adalah
System.Data.OleDb dan untuk SQL Server adalah
System.Data.SqlClient

Kumpulan class-class dalam namespace tersebut :

MS Access

System.Data.OleDb

OleDBConnection = Membuka Koneksi
OleDbCommand = Mengeksekusi perintah SQL
OleDbDataReader = Membaca record secara forward only
OleDbDataAdapter = Penghubung Ke DataSet

SQL Server

System.Data.SqlClient

SqlConnection = Membuka Koneksi
SqlCommand = Mengeksekusi perintah SQL
SqlDataReader = Membaca record secara forward only
SqlDataAdapter = Penghubung Ke DataSet

Namespace ini harus selalu dipanggil dengan menggunakan keyword using
contoh :

using System.Data.OleDb;

atau

using System.Data.SqlClient

Jika namespace tersebut tidak dipanggil maka class-class yang berada
dalam namespace yang bersangkutan tidak bisa digunakan

Menggunakan ADO.NET
—————————————

Ketika kita berhubungan dengan basis data menggunakan ADO.NET
‘ritual’ nya adalah sebagai berikut :

1. Buka Koneksi

Hal pertama yang harus dilakukan untuk membuat aplikasi basis data
adalah membuka koneksi. Koneksi ini selalu diperlukan untuk menjalankan
operasi-operasi manipulasi data seperti INSERT, UPDATE dan DELETE
ataupun meng-query record tertentu dengan perintah SELECT

Class yang bertugas untuk membuka koneksi adalah OleDbConnection
untuk MS Access, dan SqlConnection untuk SQL Server.

OleDbConnection dan SqlConnection membutuhkan property ConnectionString
yang harus diisi. selain lewat property Connection String bisa ditambahkan juga
sebagai parameter constructor class.

Connection String tiap database berbeda-beda. Connection String ini
menunjukan provider DBMS yang digunakan beserta letak direktori dan
nama database nya baik lokal maupun remote database

Contoh source code untuk buka koneksi :

MS Access :

string connStr="Provider=Microsoft.Jet.OleDb.4.0;Data Source=c:\NWIND.mdb";
OleDbConnection conn=new OleDbConnection(connStr);
conn.Open();

atau bisa seperti ini :

string connStr="Provider=Microsoft.Jet.OleDb.4.0;Data Source=c:\NWIND.mdb";
OleDbConnection conn=new OleDbConnection();
conn.ConnectionString=connStr;
conn.Open();

SQL Server :

string connStr="Data Source=DOSEN\SQLEXPRESS;Initial Catalog=NWIND;Integrated Security=True";
SqlConnection conn=new SqlConnection(connStr);
conn.Open();

Data Source pada ConnStr diisi nama server lokal atau bisa diisi
IP Address jika menggunakan server remote.

2. Eksekusi Perintah SQL

Setelah koneksi terbuka, langkah berikutnya adalah memanggil perintah
SQL yang akan dieksekusi. SQL (Structure Query Language)
adalah bahasa yang digunakan untuk berkomunikasi dengan DBMS.
Tanpa perintah SQL user tidak dapat melakukan apapun terhadap
Database.

Perintah SQL berbeda dengan bahasa pemrograman, SQL sifatnya
deklaratif dan lebih mudah dimengerti secara sintaksis karena
menggunakan bahasa sehari-hari (bahasa inggris).

SQL tidak memiliki control flow dan deklarasi variabel seperti halnya
bahasa pemrograman. Untuk menangani hal tersebut SQL bisa
digabungkan dengan bahasa pemrograman tertentu sehingga
bisa lebih dinamis.

Secara umum perintah SQL terbagi 3, yaitu :

DDL (Data Defenition Language)

Perintah untuk membuat Database baru, dan pemanipulasian objek-objek
terkait yang ada dalam database tersebut. Contoh : CREATE TABLE,
DROP TABLE, ALTER TABLE

DML (Data Manipulation Language)

Berhubungan dengan query dan pemanipulasian table di database.
Contoh : SELECT, INSERT, UPDATE, DELETE

DCL (Data Control Language)

Perintah yang berhubungan dengan manajemen user. Perintah DCL ini
hanya tersedia untuk Database bertipe client-server yang penggunanya
lebih dari 1 user. Contoh : GRANT, REVOKE

Class yang digunakan untuk mengeksekusi perintah SQL adalah
OleDbCommand pada MS Access atau SqlCommand pada SQL Server.
OleDbCommand dan SqlCommand memiliki parameter constructor
perintah sql dan Connection.

Contoh :

Class OleDbCommand memiliki method utama ExecuteNonQuery()
dan ExecuteReader() method ExecuteNonQuery() digunakan
untuk mengeksekusi perintah SQL manipulasi data seperti
INSERT, UPDATE, dan DELETE

method ExecuteReader() digunakan hanya untuk perintah
sql SELECT, return value dari method tersebut adalah objek
OleDbDataReader atau SqlDataReader

INSERT

MS Access :

string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
OleDbCommand cmd=new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();

atau :

string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
OleDbCommand cmd=new OleDbCommand();
cmd.Connection=conn;
cmd.CommandText=sql;

cmd.ExecuteNonQuery();

SQL Server :

string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.ExecuteNonQuery();

atau :

string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText=sql;

cmd.ExecuteNonQuery();

UPDATE

MS Access :

string sql="UPDATE Customers SET Nama='XERIS System',Alamat='BOGOR' WHERE CustomerID=1;
OleDbCommand cmd=new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();

SQL Server :

string sql="UPDATE Customers SET Nama='XERIS System',Alamat='BOGOR' WHERE CustomerID=1;
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.ExecuteNonQuery();

DELETE

MS Access :

string sql="DELETE Customers WHERE CustomerID=1;
OleDbCommand cmd=new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();

SQL Server :

string sql="DELETE Customers WHERE CustomerID=1;
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.ExecuteNonQuery();

3. Menampilkan Data

Untuk menampilkan data di ADO.NET class yang digunakan adalah
OleDbDataReader dan SqlDataReader DataReader ini sifatnya
forward-only artinya hanya bisa baca maju ke depan, tidak bisa
Move previos atau Move Next seperti pada ADO classic

MS Access

string sql="SELECT * FROM Customers;
OleDbCommand cmd=new OleDbCommand(sql,conn);
OleDbDataReader rdr=cmd.ExecuteReader();

while (rdr.Read())
{
   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
   Console.WriteLine(Convert.ToString(rdr["Nama"]));
}

rdr.Close();

SQL Server

string sql="SELECT * FROM Customers;
SqlCommand cmd=new SqlCommand(sql,conn);
SqlDataReader rdr=cmd.ExecuteReader();

while (rdr.Read())
{
   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
   Console.WriteLine(Convert.ToString(rdr["Nama"]));
}

rdr.Close();

Pemanggilan method ExecuteReader() menghasilkan semua record tabel
Customers dan disimpan di objek OleDbDataReader/SqlDataReader.
Untuk menampilkan record di object tersebut gunakan statement
looping while. Jika data tersebut ada maka tampilkan di Console
dengan perintah Console.WriteLine. Convert berfungsi untuk mengubah
objek ke tipe yang bersesuaian dengan tipe field di table nya

4. Pencarian Data

Salah satu operasi yang paling banyak dilakukan dibasis data adalah
operasi pencarian/seraching.Untungnya DBMS menyediakan kemampuan
pencarian tersebut di SQL dengan hanya menmbahkan clausa WHERE

Contoh :

Jika Anda ingin mendapatkan data Customer yang alamatnya di Bogor
cukup seperti ini

SELECT * FROM Customers WHERE Alamat=’Bogor’

Pencarian dapat dilakukan lebih luas lagi dengan menggunakan
operator LIKE

SELECT * FROM Customers WHERE Nama LIKE ‘%dewi%’

Jika diketahui datanya sebagai berikut

# Namal
———————-
1 Sandra Dewi
2 Dewi Sandra
3 Dewi Persik
4 Dewi-Dewi
5 Cinta Laura

query SELECT * FROM Customers WHERE Nama LIKE ‘%dewi%’
(% didepan dan dibelakang) akan menghasilkan record no 1,2,3, dan 4

perintah sql tersebut mencari semua data di tabel customer yang
mengandung kata ‘dewi’ baik nama depan, belakang, maupun tengah

query SELECT * FROM Customers WHERE Nama LIKE ‘%dewi'(% didepan)
akan mencari semua data di tabel Customers yang nama belakangnya
mengandung kata ‘dewi’. Record yang dihasilkan adalah no 1 dan 4

query SELECT * FROM Customers WHERE Nama LIKE ‘dewi%’
(% dibelakang) akan mencari semua data di tabel Customers yang
nama depannya mengandung kata ‘dewi’, data yang dihasilkan adalah
no 2,3, dan 4.

Lalu bagaimana dengan ‘Cinta Laura’, bagaimana cara menampilkannya?
(jangan khawatir cin,kamu pasti bisa tampil :-))

untuk menampilkan Cinta Laura bisa 3 cara :

SELECT * FROM Customers WHERE Nama=’Cinta Laura’
SELECT * FROM Customers WHERE Nama LIKE ‘%cinta%’

atau

SELECT * FROM Customers WHERE Nama NOT LIKE ‘%dewi%’

hmmm…cara terakhir sepertinya dipaksakan sekali 🙂

Contoh Program :

MS Access


string cari="dewi";

string sql="SELECT * FROM Customers WHERE Nama LIKE '%" + cari + "'%';
OleDbCommand cmd=new OleDbCommand(sql,conn);
OleDbDataReader rdr=cmd.ExecuteReader();

while (rdr.Read())
{
   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
   Console.WriteLine(Convert.ToString(rdr["Nama"]));
}

rdr.Close();

SQL Server


string cari="dewi";

string sql="SELECT * FROM Customers WHERE Nama LIKE '%" + cari + "'%';
SqlCommand cmd=new SqlCommand(sql,conn);
SqlDataReader rdr=cmd.ExecuteReader();

while (rdr.Read())
{
   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
   Console.WriteLine(Convert.ToString(rdr["Nama"]));
}

rdr.Close();

One thought on “Pengenalan ADO.NET

Leave a comment