Pengenalan ADO.Net

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 :
1using System.Data.OleDb;
atau
1using 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 :
1string connStr="Provider=Microsoft.Jet.OleDb.4.0;Data Source=c:\NWIND.mdb";
2OleDbConnection conn=new OleDbConnection(connStr);
3conn.Open();
atau bisa seperti ini :
1string connStr="Provider=Microsoft.Jet.OleDb.4.0;Data Source=c:\NWIND.mdb";
2OleDbConnection conn=new OleDbConnection();
3conn.ConnectionString=connStr;
4conn.Open();
SQL Server :
1string connStr="Data Source=DOSEN\SQLEXPRESS;Initial Catalog=NWIND;Integrated Security=True";
2SqlConnection conn=new SqlConnection(connStr);
3conn.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 :
1string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
2OleDbCommand cmd=new OleDbCommand(sql,conn);
3cmd.ExecuteNonQuery();
atau :
1string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
2OleDbCommand cmd=new OleDbCommand();
3cmd.Connection=conn;
4cmd.CommandText=sql;
5 
6cmd.ExecuteNonQuery();
SQL Server :
1string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
2SqlCommand cmd=new SqlCommand(sql,conn);
3cmd.ExecuteNonQuery();
atau :
1string sql="INSERT INTO Customers (Nama,Alamat) VALUES ('XERIS','Sentul Valley');
2SqlCommand cmd=new SqlCommand();
3cmd.Connection=conn;
4cmd.CommandText=sql;
5 
6cmd.ExecuteNonQuery();
UPDATE
MS Access :
1string sql="UPDATE Customers SET Nama='XERIS System',Alamat='BOGOR' WHERE CustomerID=1;
2OleDbCommand cmd=new OleDbCommand(sql,conn);
3cmd.ExecuteNonQuery();
SQL Server :
1string sql="UPDATE Customers SET Nama='XERIS System',Alamat='BOGOR' WHERE CustomerID=1;
2SqlCommand cmd=new SqlCommand(sql,conn);
3cmd.ExecuteNonQuery();
DELETE
MS Access :
1string sql="DELETE Customers WHERE CustomerID=1;
2OleDbCommand cmd=new OleDbCommand(sql,conn);
3cmd.ExecuteNonQuery();
SQL Server :
1string sql="DELETE Customers WHERE CustomerID=1;
2SqlCommand cmd=new SqlCommand(sql,conn);
3cmd.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
01string sql="SELECT * FROM Customers;
02OleDbCommand cmd=new OleDbCommand(sql,conn);
03OleDbDataReader rdr=cmd.ExecuteReader();
04 
05while (rdr.Read())
06{
07   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
08   Console.WriteLine(Convert.ToString(rdr["Nama"]));
09}
10 
11rdr.Close();
SQL Server
01string sql="SELECT * FROM Customers;
02SqlCommand cmd=new SqlCommand(sql,conn);
03SqlDataReader rdr=cmd.ExecuteReader();
04 
05while (rdr.Read())
06{
07   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
08   Console.WriteLine(Convert.ToString(rdr["Nama"]));
09}
10 
11rdr.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
01string cari="dewi";
02 
03string sql="SELECT * FROM Customers WHERE Nama LIKE '%" + cari + "'%';
04OleDbCommand cmd=new OleDbCommand(sql,conn);
05OleDbDataReader rdr=cmd.ExecuteReader();
06 
07while (rdr.Read())
08{
09   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
10   Console.WriteLine(Convert.ToString(rdr["Nama"]));
11}
12 
13rdr.Close();
SQL Server
01string cari="dewi";
02 
03string sql="SELECT * FROM Customers WHERE Nama LIKE '%" + cari + "'%';
04SqlCommand cmd=new SqlCommand(sql,conn);
05SqlDataReader rdr=cmd.ExecuteReader();
06 
07while (rdr.Read())
08{
09   Console.WriteLine(Convert.ToInt32(rdr["CustomerID"]));
10   Console.WriteLine(Convert.ToString(rdr["Nama"]));
11}
12 
13rdr.Close();

0 komentar: