Ketika kita berhubungan dengan basis data menggunakan ADO.NET “ritual” nya adalah sebagai berikut :
1. Membuka Koneksi
Hal pertama yang harus dilakukan untuk membuat aplikasi database 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=SYSTEMINTERFACE\\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 (CompanyName,Address) VALUES ("
+
"'XERIS','Sentul Valley')";
OleDbCommand cmd=new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();
atau :
string sql="INSERT INTO Customers (CompanyName, Address) VALUES "
+
"('XERIS','Sentul Valley')";
OleDbCommand cmd=new OleDbCommand();
cmd.Connection=conn;
cmd.CommandText=sql;
cmd.ExecuteNonQuery();
SQL Server :
string sql="INSERT INTO Customers (CompanyName,Address) VALUES "
+
"('XERIS','Sentul Valley')";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.ExecuteNonQuery();
atau :
string sql="INSERT INTO Customers (CompanyName,Address) VALUES "
+
"('XERIS','Sentul Valley')";
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText=sql;
cmd.ExecuteNonQuery();
UPDATE
MS Access :
string sql="UPDATE Customers SET CompanyName='XERIS System',Address='BOGOR'"
+ "WHERE CustomerID=1";
OleDbCommand cmd=new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();
SQL Server :
string sql="UPDATE Customers SET CompanyName='XERIS System',Address='JEDAH'"
+ "WHERE CustomerID=1";
SqlCommand cmd=new SqlCommand(sql,conn);
cmd.ExecuteNonQuery();
DELETE
MS ACCESS
string sql="DELETE Customers WHERE CustomerID='XERIS'";
OleDbCommand cmd=new OleDbCommand(sql,conn);
cmd.ExecuteNonQuery();
SQL Server :
string sql="DELETE Customers WHERE CustomerID='XERIS'";
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 previuos 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["CompanyName"]));
}
rdr.Close();
cmd.Dispose();
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["CompanyName"]));
}
rdr.Close();
cmd.Dispose();
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
UNTUK DATASET TUNGGU DI POSTING BERIKUT NYA.