Pengetahuan Dasar ADO.NET C# untuk Pemrograman Database

Aplikasi yang kita buat seringkali menyertakan database  untuk menyimpan data  misalnya aplikasi monitoring temperatur , data temperatur harian atau per menit kita simpan di MsAccess , Mysql  atau yg lainya.  Untuk menghubungkan aplikasi berbasisi .NET (dot net) spt  C#, VB.net, ASPX dll  dengan berbagai database  dibutuhkan suatu penghubung  yaitu   ADO.NET . Pada masa sebelumnya  untuk menghubungkan aplikasi dgn database kita  menggunakan  ADO , OLEDB dan ODBC.

Mengenal ADO.NET

ADO.NET merupakan    kumpulan  class yang memberikan  akses ke database serta XML  ditujukan   buat para  programmer  .NET.   Class class  tsb merupakan bagian dari framework .NET  yg terletak  di namespace   system.data.dll

Didalam ADO.NET tersedia berrbagai  data provider spt OLEDB, ODBC dan data provider khusus untuk database tertentu spt untuk SQL server  dan oracle. Selain untuk database  juga tersedia data provider untuk XML.

XML digunakan untuk pertukaran data antar  system yg berbeda contoh sebuah system di linux dgn aplikasi  java dan mysql  akan bertukar data dgn system lain yg mengunakan  os windows dgn aplikasi  C# dan MsAccess . Cara mudah pertukaran data antara dua system tsb  adalah data yg dipertukarkan  mempunyai format yang sama yaitu dlm  bentuk XML. Pada artikel ini sy tdk membahas tentang XML.

Arsitektur ADO.NET

Terdapat 2 kelompok  class utama dlm ADO.Net:
Pertama data provider :    digunakan  untuk koneksi ke database .
Kedua adalah data set :  digunankan untuk menyimpan dan mengelola data. Lebih jelasnya bisa dilihat dlm arsitektur ADO.Net berikut ini:

adonet

Conected dan Disconected

ADO.NET  menyediakan mode conected dan disconected dlm mengelola database.  Pada Mode conected  client memodifikasi data dlm keadaan online  sedangkan mode disconected adalah fitur baru ADO.NET  gambaran mekanismenya antara lain  sbb: client membuka  koneksi ke server database kemudian   data disimpan di  buffer(dataset) client  lalu koneksi server diputus setelah  data diolah baru dibuat  lagi koneksi ke server untuk transfer data. model disconected  spt ini  sangat membantu karena bisa mengurangi trafik data dlm jaringan  terutama jika jumlah client sangat banyak

conected_disconected

Melalui gambar  arsitektur diatas saya ingin memperjelas perbedaan cara mengases database dgn conected ( client dan server database tergubung terus selama  manipulasi data) dgn data reader. dan  disconected , pemilihan kedua  cara tsb tergantung  kebutuhan aplikasi yg kita buat. misalnya untuk mengisi datagridview maka kita gunakan data adafter dan data set sedangkan jika kita ingin mengambil satu baris atau beberapa baris data maka kita gunakan data reader.

Connection
Komponen ini digunakan untuk mengatur koneksi dengan sebuah data source..

Command
command adalah pernyataan SQL atau prosedur yang tersimpan digunakan untuk mengambil, insert, delete atau update data dalam  sebuah data source.

DataReader
Datareader digunakan untuk mengambil data dari database dalam mode read-only dan mode forward.

DataSet
DataSet adalah representasi data di memori . dataset terputus dari database, ia menyimpan cached sejumlah record yang diambil dari database. Ketika sambungan dibuat dengan database, data adapter membuat dataset dan menyimpan data di dalamnya. Setelah data diambil dan disimpan dalam dataset, koneksi dengan database ditutup. Hal ini yg disebut  sebagai ‘arsitektur terputus/disconected’. dataset bekerja sebagai database virtual yg berada di memori  yang berisi tabel.

DataAdapter
DataAdapter merupakan bagian integral dari kerja ADO.Net karena data ditransfer ke dan dari database melalui data adafter. Data adafter mengambil data dari database dan menyimpanya ke dalam dataset selain itu data adafter juga mengupdate database.
Ketika perubahan  terjadi di dataset, perubahan juga terjadi di dalam database yg  dilakukan oleh data adapter

Data Provider
Dataprovider digunakan untuk menghubungkan aplikasi dgn database, mengeksekusi perintah dan mengambil data, menyimpannya dalam dataset, membaca data yang diambil dan memperbarui database.

sedangkan yang dimaksud data provider  adalah  bagian yg spt tampak berikut ini:

dataprovider

Tiap  data provider  mempunyai namespace masing2 yg ada di NET Framework antara lain :

– System.Data.SqlClient  :  data provider  untuk  SQL Server
– System.Data.OracleClient :   data provider untuk  Oracle
– System.Data.Odbc   :  data provider untuk  ODBC
-System.Data.OleDb  :  data provider  untuk  OLEDB

1. Data Provider  untuk  database SQL SERVER

Data Profider SQL Server ada di namespace System.Data.SqlClient. Berikut ini  beberapa class class   yg disediakan  dlm namespace tsb :
– SqlConnection: class yg digunakan untuk koneksi  ke database SQL Server
– SqlCommand   : class yg digunakan untuk mengeksekusi SQL query  atau  store procedures
– SqlDataAdapter: class yg menghubungkan  dataset  dan  database SQL Server
– SqlDataReader :  class yg digunakan untuk membaca database secara read only.

2. Data provider untuk  database ORACLE

Data provider  khusus  untuk database Oracle tersedia di namespace System.Data.OracleClient. Berikut ini  beberapa class class   yg disediakan  dlm namespace tsb :
– OracleConnection
– OracleCommand
– OracleDataAdafter
– OracledataReader

3. Data provider  OLEDB  untuk database dg teknoogi yg lama

OLEDB digunakan untuk database lama antara lain : Pradox, Dbase, MsAccess ,Mysql ,DB2 dan  sql server versi lama. selain itu  OLEDB juga digunakan ketika kita menggunakan 2 database yg berbeda   misal kita menggunakan MsAccess dan SQL server dlm satu aplikasi secara simultan.

Data provider OLEDB harus melalui beberapa layer untuk mengakses database. sehingga lebih efisien anda menggunakan data provider yg spesifik untuk tiap database. mial untuk Oracle gunakanlah data provider  yg ada di System.Data.OracleClient  bgitupun untuk SQL Server lebih efisien menggunakan dataprovider yg tersedia di System.Data.SqlClient dari pada anda menggunakan data provider OLEDB (System.Data.OleDb).

Class class yg digunakan oleh data provider OLEDB  (class class tsb ada di  namespace System.Data.OleDb)  antar lain:

–  OleDbConnection,  class untuk mengkoneksi  database
–  OleDbCommand,   class untuk  menjalankan  SQL query
–  OleDbDataAdapter, class untuk menghubungkan  dataset  dg database
–  OleDbDataReader,   membaca hasil output dari database

classdataprofider
=================teori end=========================

Sekarang waktunya kita akan lihat contoh konkrit  bagaimana aplikasi C# mengakses database secara “conected” dgn objek DataReader .

Contoh1 :   aplikasi console  C#  mengkases database sql server dgn  data provider  SQL Server (using System.Data.SqlClient )  :

using System;
using System.Data.SqlClient;   // namespace data provider sql server
namespace  ContohAksesSqlServer
{
  class ContohSqlServerProvider
  {
   static void Main(string[] args)
    {
   // buat string untuk koneksi
     string  stringKoneksi = @ " server =  .\sqlexpress;  integrated security = true;  database = perpustakaan " ;

    // buat query
    string SQL = @ " select * from  data_buku ";

    // deklarasikan objek  connection dan  data reader
    SqlConnection  koneksi_database = null;
    SqlDataReader  baca_data = null;
   try
    {
  // 1. buka koneksi ke database
     koneksi_database  = new SqlConnection(stringkoneksi);
   koneksi_database.Open();

    // 2. jalankan query
    SqlCommand cmd = new SqlCommand(SQL, koneksi_database);
    // tampilkan judul kolom data
      Console.WriteLine("Judul buku \t  Pengarang\n");

    // 3. proses output table

     baca_data = cmd.ExecuteReader();
    while(baca_data.Read())
     {
    Console.WriteLine("{0} | {1}", baca_data[0].ToString(baca_data[1].ToString());
     }
    }
  catch (Exception e)
     {
     Console.WriteLine("Error: " + e);
      }

finally
    {
     //4.  Tutup Koneksi
   koneksi_database.Close();
    }
}
}

Untuk menghubungkan aplikasi C# dng  database sql server selain dengan data provider  khusu untuk sql server spt diatas ( using System.Data.SqlClient) juga bisa dengan OLEDB ataupun dgn ODBC adapun  dimana letak perbedaan utamanya  bisa dilihat di table berikut ini:

perbedaan1

Contoh2 :  Koneksi Aplikasi C#  dg database MsAccess  menggunakan data provider OLEDB (using System.Data.OleDb;)

 https://pccontrol.wordpress.com/2011/08/05/contoh-koneksi-c-dengan-ms-access-2003-mdb-dan-2007-accdb/

contoh3 : koneksi aplikasi C# dengan MYSQL  menggunakan data provider milik mysql  (using MySql.Data.MySqlClient;)

https://pccontrol.wordpress.com/2011/04/28/pemrograman-c-dengan-mysql/

contoh4:  VB.Net dengan database MYSQL

https://pccontrol.wordpress.com/2014/12/17/pengetahuan-dasar-koneksi-vb-net-dan-database-mysql/

Advertisements

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis.

Posted on 17/04/2013, in Pemrograman C# ( si sharp), Visual C#. Bookmark the permalink. Leave a comment.

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: