ADO.NET SERI 1 : Penerapan OleDb dan SQL SERVER pada DataGridView [Halaman Ini]
ADO.NET SERI 2 : Penerapan ODBC pada DataGridView [Belum]
ADO.NET SERI 3 : Penerapan Oracle Database pada DataGridView
Pada tutorial – tutorial C# sebelumnya, kita selalu berhadapan dengan Database dan penerapannya pada DataGridView. Padahal database dan kode – kodenya ini beda – beda. Kadang kita memakai Ms.Access, terkadang memakai Sql Server, Sql Compact, Sql Express dan lain lain. Pasti ingin tahu, sebetulnya GARIS BESAR nya apa sih, supaya mudah dipahami. :)
Maka dari itu, pada tutorial ini kita akan membahas tentang OleDb, ODBC, Oracle, dan SQL SERVER pada ADO.NET dan penerapannya pada DataGridView Component.
Nah, ada istilah baru kan , yaitu ADO.NET. Apa sebetulnya arti ADO.NET? kenapa programming pada Microsoft begitu membingungkan? :)
Sebelum ke ado.net, kita perlu tahu, apa itu OleDb, Odbc??? (SqlServer dan Oracle sudah jelas)
OleDb dan Odbc ini merupakan ‘.NET DATA PROVIDERS’. Sebetulnya ‘.NET DATA PROVIDERS’ ini ada dua (2) yaitu:
Native Providers (Provider Asli) – Contohnya SqlServer
Bridge Providers (Provider Bridge/Jembatan/Cross/Penghubung) – Contohnya OleDb dan OdBc.
OLEDB = Object Link and Embeded Database. Bisa dibilang ini merupakan system database yang bisa diembed dan bisa dilink. Bisa dibilang juga ini adalah database portable karena databasenya bisa berupa file.
Contohnya yang setiap hati saya gunakan adalah Ms.Access Database. Software ini menggunakan system OleDb.
ODBC = Open Database Connectivity. Merupakan protokol standar yang dikembangkan oleh Microsoft untuk mengakses Database apapun yang bersistem SQL. Konektiviti ini ‘open’, maksudnya adalah terbuka, semua vendor bisa membuat driver database mereka sendiri – sendiri dan developer bisa menggunakan ODBC driver yang telah disediakan untuk mengakses database dari vendor.
Mudah dimengerti kan?
TENTANG ODBC, akan kita bahas pada tutorial berikutnya.
Mari kita lanjut ke ADO.NET...
ADO.NET ini merupakan salah satu point pada ‘Data dan Modeling dalam .NET Framework’ (Lihat screenshot di atas).
Padahal dalam data dan modeling .NET, tidak hanya ADO.NET saja melainkan ada LINQ (Language Integrated Query), WCF Data Services, dan XML.
Lalu, apa itu ADO.NET?
ADO merupakan kependekan dari ActiveX Data Object. Bila anda menggunakan data object pada framework .NET maka disebut dengan ADO.NET. Perlu diketahui bahwa ADO dan ADO.NET ini berbeda. Gunakan ADO.NET bila anda men-develop pada .NET framework.
Mari langsung saja kita ke pembahasan OleDb, ODBC, Oracle dan SQL Server.
Bila kita ingin membuat sebuah aplikasi yang berbasiskan data, maka kita difokuskan pada dua hal yaitu APLIKASI yang kita buat dan DATA SOURCE.
APLIKASI yang kita buat ini adalah aplikasi target kita, bisa dibuat dengan bahasa apa saja.
DATA SOURCE ini merupakan sumber data kita, bisa berupa database maupuan data set.
Nah, pusing lagi, database itu adalah ya database :P contohnya ya tadi, Oracle, SqlServer, SqlServer Express, SqlCompact, Sqlite, Ms.Access, MySql, dan lain - lain. Kalo ‘dataset’ itu ya kumpulan data, xml misalnya.
ADO.NET memiliki sebuah metode untuk menjembatani APLIKASI dengan DATA SOURCE yaitu yang akrap di tutorial – tutorial kita sebelumnya dengan sebutan ‘.NET DATA PROVIDER’.
‘.NET DATA PROVIDER’ ini lah yang memiliki Conection, Command, Data Reader, Data Adapter yang sering kita gunakan.
Pada Connection misalnya, ‘.NET DATA PROVIDER’ memiliki Connection Object yang beragam, untuk OleDb ada yang namanya ‘OleDbConnection’, untuk ODBC ada yang namanya OdbcConnection, untuk SQL SERVER ada ‘SqlConnection’, sedangkan untuk Oracle terdapat ‘OracleConnection’.
Tapi sebelum kita membahas tentang ‘Connection’, kita akan bahas terlebih dahulu tentang ‘.NET DATA PROVIDER’.
Ingat ya ‘.NET DATA PROVIDER’. :) jangan sampai lupa istilahnya :)
.NET DATA PROVIDER (Penyedia data bagi .NET) digunakan untuk:
•Koneksi ke dalam database
•Eksekusi Command
•Retrive data hasil eksekusi command
Hasil retrive data ini bisa langsung dieksekusi, bisa juga langsung dimasukan ke dataset, bisa juga dikombinasikan dengan data yang lain, dan lain sebagainya.
Nah, berikut macam – macam .NET DATA PROVIDER pada pemrograman .NET Framework.
1..NET DATA PROVIDER untuk Sql Server adalah System.Data.SqlClient namespace.
2..NET DATA PROVIDER untuk OLE DB adalah System.Data.OleDb namespace.
3..NET DATA PROVIDER untuk ODBC adalah System.Data.Odbc namespace.
4..NET DATA PROVIDER untuk Oracle adalah System.Data.OracleClient namespace.
5..NET DATA PROVIDER untuk entity adalah System.Data.EntityClient namespace.
6..NET DATA PROVIDER untuk Sql Server Compact (CE) adalah System.Data.SqlServerCe namespace.
Informasi bahwa Sql Server Compact Edition (CE) telah deprecated, anda bisa menggunakan SQL SERVER EXPRESS (LocalDb) sebagai pengganti nya. (lihat tutorial sebelumnya).
Mudah dipahami kan??? Dijamin anda tidak mendapati artikel ini di Internet kecuali di MediaTutorial :)
Nah, .NET DATA PROVIDER ini pun disusun dari beragam object. Yaitu Connection, Command, DataReader, dan DataAdapter.
Berikut merupakan pembahasannya:
A.Connection, ini merupakan koneksi ke database. Koneksi ini pun beragam sesuai dengan nama database kita:
*SqlConnection – digunakan untuk Sql Server
*OleDbConnection – digunakan untuk Ole Db
*OdbcConnection – digunakan untuk Odbc
*OracleConnection – digunakan untuk Oracle
Meski beragam koneksinya, tapi Base Class dari semuanya adalah DbConnection.
Pasti tambah bingung, jangan khawatir kita akan memperagakannya di bagian bawah tutorial.
Dan untuk bisa berkoneksi, kita pun juga perlu memahami ConnectionString pada setiap database. Kita akan bahas juga pada bagian bawah artikel ini.
B.Command, digunakan untuk mengeksekusi perintah (command) dan menampilkan hasil,
Command ini pun beragam sesuai dengan Database yang kita gunakan:
*SqlCommand – digunakan untuk Sql Server
*OleDbCommand – digunakan untuk Ole Db
*OdbcCommand – digunakan untuk Odbc
*OracleCommand – digunakan untuk Oracle
Dan Base class dari command – command di atas adalah DbCommand.
C.DataReader, (dalam bahasa indonesia : PembacaData), digunakan untuk meretrieve data murni, data read-only, jadi betul – betul data mentah apa adanya yang baru keluar dari hasil eksekusi command.
Jenis – jenisnya sama seperti pada Command.
*SqlDataReader – digunakan untuk Sql Server
*OleDbDataReader – digunakan untuk Ole Db
*OdbcDataReader – digunakan untuk Odbc
*OracleDataReader – digunakan untuk Oracle
D.DataAdapter, (dalam bahasa indonesia: Peng-adaptasi Data), digunakan untuk mengadaptasi data, maksudnya, me-retrieve data dari datasource kemudian membuatkan table untuk data ini, kemudian memasukannya ke dalam DataSet.
Jenis – jenisnya pun sama:
*SqlDataAdapter – digunakan untuk Sql Server
*OleDbDataAdapter – digunakan untuk Ole Db
*OdbcDataAdapter – digunakan untuk Odbc
*OracleDataAdapter – digunakan untuk Oracle
Nah, sementara sampai di sini jelas bukan??
Mari kita lanjut.
CONNECTIONSTRING?? APA SIH??
ConnectionString, ini digunakan untuk koneksi ke dalam database. Sebagai contoh:
OleDbConnection connect = new OleDbConnection();
connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MetuDatabase.accdb;Persist Security Info=false;";
connect.Open();
di atas, saya berkoneksi ke Microsoft Access 2007, anda bisa lihat connectionstringnya adalah seperti itu, padahal setiap database memiliki connectionstring sendiri – sendiri.
Untuk mempermudah connectionstring sesuai dengan database yang ingin anda gunakan, anda bisa membuka http://connectionstring.com
MARI KITA PRAKTEK KONEKSI SATU - SATU MENGAMBIL DATA DARI DATABASE DAN MENAMPILKANNYA PADA DATAGRIDVIEW COMPONENT.
Ingat, pada ADO.NET SERI 1 ini kita hanya membahas OLEDB dan SQLSERVER ;)
A.Connecting, Retrieving Data dari SQL SERVER / SQL SERVER EXPRESS / SQL SERVER EXPRESS (LocalDb) ke DataGridView Component.
B.Connecting, Retrieving Data OLEDB ke DataGridView Component.
Berikut merupakan pembahasannya:
A.Connecting, Retrieving Data dari SQL SERVER / SQL SERVER EXPRESS / SQL SERVER EXPRESS (LocalDb) ke DataGridView Component.
Langkah – langkahnya:
*Buatlah sebuah project C# baru (masih ingatkan??) dan tambahkan dataGridView komponent tentunya.
*Tambahkan sebuah database (masih ingat juga kan??)
*Pada database yang sudah dibuat, buatlah table, dan isikan terserah anda (masihkah ingat??)
Tiga hal di atas selalu kita ulang – ulang dan kita bahas - bahas, bila lupa, silahkan buka - buka tutorial C# sebelumnya :P
Nah, setelah itu mari kita buat kodenya.
Saya berfikir dan berfikir supaya kode ini bisa menjadi standar di setiap proses koneksi data kita nantinya. Yaitu kita bagi menjadi 3 method, makeConnection() , closeConnection() dan loadingData().
Lihat gambar 1:
Coba perhatikan kotak merah pertama. Itu adalah .NET PROVIDER yang kita butuhkan terlebih dahulu supaya kode kita bisa jalan.
Coba perhatikan kotak merah kedua. Itu adalah variable – variable yang akan kita gunakan, kita mendefinisikan di dalam class, baris pertama, di luar fungsi/method , dengan tujuan supaya variable tersebut nantinya akan mudah diakses oleh semua method.
Cukup memperhatikan saja jelas kan ya?
*mdfFilename ini nantinya adalah nama database kita.
*outputFolder adalah nantinya sebagai path komplit (absolute path) ke database kita.
Kenapa memakai absolute?? Sebetulnya bisa sih relatif path, tapi lebih baik langsung pakai absolute path saja.
Contoh:
Absolute path = C:\MyDatabase\Project\Metu\Db\Percobaan.mdf
Relatif path = ..\..\Db\Percobaan.mdf
*attachDbFilename adalah nantinya gabungan dari mdfFilename dengan outputFolder.
*connString adalah connectionString kita nantinya.
*is_connecting adalah boolean yaitu sebagai pertanda apakan connection kita ini sedang terkoneksi apa tidak.
*SqlConnection connection adalah koneksi kita.
Mari kita lanjut ke kode berikutnya:
Nah, pada kode ini kita membuat method untuk makeConnection dan closeConnection.
Perhatikan kode berikut ini:
Lihat gambar 2:
Nah, variable – variable yang sudah kita declarasikan di awal tadi kita isikan nilainya pada method makeConnection() ini.
attachDbFilename merupakan gabungan dari mdfFilename dan outputFolder, sehingga nanti bisa kita dapatkan absolute path seperti:
C:\MyDatabase\Project\Metu\Db\Database1.mdf
Mari kita lanjut ke proses loadingData()
Anda bisa lihat, kita membuat Command, kemudian SqlDataAdapter, dan terakhir kita memasukan data kedalam dataTable.
dataTable ini kemudian kita masukan kedalam dataGridView. Mudah bukan??
Berikut merupakan kode full nya:
B.Connecting, Retrieving Data OLEDB ke DataGridView Component.
Sebagai OleDb nya, kita sepakati saja menggunakan Ms.Access Database.
Mari langsung kita akan membuatnya.
Langkah – langkahnya:
*Buatlah sebuah project C# baru (masih ingatkan??) dan tambahkan dataGridView komponent tentunya.
*Buatlah sebuah database di database Ms.Access.
*Pada database yang sudah dibuat, buatlah table, dan isikan terserah anda (masihkah ingat??)
*Simpan database ms.access tersebut ke dalam directory yang letaknya sama dengan project kita.
Perlu diketahui bersama, sama menggunakan Ms.Access 2013, dan untuk databasenya saya memilih ‘Blank Desktop Database’.
Lihat gambar 3:
Sebagai contoh saya sudah membuat sebuah database Ms.Access dengan nama Database1.accdb
Lihat gambar 4:
Nah, kita kan disini manual naruh databasenya project. Padahal , saat kita debug program, tentu hasil debug ini masuk ke folder bin, file.exe yang didalam folder bin akan mencari databasenya, bila tidak ketemu akan error,
Maka dari itu, Database1.accdb harus juga kita letakkan di folder bin/debug.
Lihat gambar 4.1:
/**********************************************
**
** INFO BEGIN
**
***********************************************/
[INFO UNTUK YANG TIDAK PAKAI KODE]
(Visual Studio menyediakan fasilitas untuk kolaborasi dataGridView dan ms.access tanpa mengetikan kode sama sekali)
Sekedar informasi, untuk anda bisa menggunakan database ini tanpa kode sama sekali hanya dengan dari menu Tools – Connect to Database...
Lihat gambar 5:
Nanti, akan muncul window kecil untuk koneksi, silahkan pilih saja Ms.Access (ole db)
Lihat gambar 6:
Nah, setelah terkoneksi, nanti anda bisa drag and drop dataGridView ke project, kemudian setting datasourcenya ke database Ms.Access ini, selesai.
/**********************************************
**
** INFO END
**
***********************************************/
Apakah kita akan membuatnya seperti itu?? Tidak, kita akan tetap menggunakan kode makeConnection() dan closeConnection() seperti pada Sql Server. :)
Nah, setelah itu mari kita buat kodenya.
Lihat gambar 7:
Dapat anda lihat, kotak merah pertama , kita menambahkan ‘.NET DATA PROVIDER’ dengan Data.OleDb.
System.IO dan System.Reflection nantinya akan digunakan sebagai ABSOLUTE PATH untuk connectionstring dan letak databasenya, sama seperti SqlServer sebelumnya.
Pada kotak merah berikutnya, kita mendeclarasikan variable – variable yang kita butuhkan, penjelasan tentang variable ini telah kita sebutkan tadi pada bagian SqlServer, hayo, coba baca-baca di atas.
Nah, bedanya, pada SqlServer kita menggunakan ‘SqlConnection’ tapi pada line ini kita menggunakan ‘OleDbConnection’.
Mari kita lanjut ke kode berikutnya:
Nah, pada kode ini kita membuat method untuk makeConnection dan closeConnection.
Perhatikan kode berikut ini:
Lihat gambar 8:
Lihat, method makeConnection() tidak jauh beda dengan kode pada SqlServer. Yang berbeda jelas adalah ‘connString’ dan ‘connection’ karena kita menggunakan OleDb, bukan SqlServer.
Nah, berikutnya, mari kita menginjak pada method loadingData()
Yup, kode kita sama mirip dengan pada SqlServer, hanya bedanya ‘command’ dan ‘adapter’ kita sesuaikan dengan OleDb, yaitu sebagai ‘command’ adalah ‘OleDbCommand’ sedangkan sebagai ‘adapter’ adalah ‘OleDbAdapter’.
Mudah bukan? Berikut adalah kode full nya.
MUDAH SEKALI BUKAN??
Pada ADO.NET seri 2 dan seri 3, kita akan membahas tentang:
*Connecting, Retrieving Data ODBC ke DataGridView Component.
*Connecting, Retrieving Data ORACLE ke DataGridView Component.
Demikian tutorial untuk kesempatan kali ini, semoga bermanfaat,
Salam