Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
CHAPTER #9 Mengenal ADO.NET dan Koneksi Database Pembahasan pada bab terakhir ini berkaitan dengan perancangan aplikasi yang dapat melakukan interaksi dengan database pada SQL server. Teknologi yang digunakan adalah teknologi ADO.NET yang memberikan fasilitas untuk melakukan koneksi datri aplikasi pada suatu sistem data base.
9.1. ADO.NET ActiveX Data Objects (ADO) untuk framework .NET. merupakan class yang berisi komponen untuk melakukan interaksi dengan database, meliputi koneksi, akses dan manipulasi data. Diagram ADO.NET dapat dilihat pada gambar 9.1.
DB
Connection
DataSet
Command NET Data Provider DataReader
DataTable Data Storage
DataAdapter
dan lain lain
XML
DataRow
Gambar 9.1 Diagram ADO.NET NET Data Provider merupakan serangkaian class yang memungkinkan kode yang teratur untuk berinteraksi dengan sumber data khusus, stored procedure untuk memanggil dan mengubah data. SQL Server, OLE DB ODBC dan Oracle merupakan empat jenis NET Data Provider. Objek utama yang dimiliki NET Data Provider adalah : • Object Connection Mengatur koneksi ke database. Tidak dapat digunakan untuk mengeksekusi pernyataan SQL. • Object Command Digunakan untuk menjalankan pernyataan SQL atau menyimpan procedur ke sumber database. • Object DataReader Menyediakan akses cepat ke data read only maupun forward only. • Object DataAdapter Digunakan untuk membuat dataset dari pernyataan SQL atau dari stored procedure untuk melakukan manipulasi data. • Object DataSet Digunakan untuk membuka datacolumn (kolom) maupun datarow (baris) dari suatu datatable (tabel). • Object DataTable Bagian yang digunakan untuk merepresentasikan sebuah tabel. • Object DataRow Digunakan untuk merepresentasikan sebuah record (baris data) dari tabel. XML (eXtensible Markup Language) merupakan dokumen berbasis teks yang menyerupai HTML, tetapi digunakan khusus untuk menyimpan informasi secara
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
1
Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
terstruktur. XML digunakan sebagai standar berbagi data antar aplikasi. ADO.NET menggunakan XML untuk memberikan data dari server ke client.
9.2. Namespace Untuk menggunakan ADO.NET, yang terlebih dahulu harus dilakukan adalah mengaktifkan namespace untuk ADO.NET, yaitu : using System.Data; using System.Data.Oledb; using System.Data.SqlClient;
9.3. Object Connection Object ini menyediakan koneksi pada database dengan 2 cara, yaitu SQLConnection dan OleDbConnection. Pembahasan pada bab ini akan dilakukan pada cara koneksi dengan menggunakan SQLConnection. SqlConnection
= new SqlConnection();
Connection string merupakan formulasi string yang menjelaskan secara detil tentang koneksi yang dilakukan. Pada connection string juga dapat ditambahkan beberapa parameter sesuai kebutuhan. Contohnya : ”Data Source = ; Initial Catalog = < nama database> ; uid = [ nama user] ; pwd = [ sandi ]”
Untuk melakukan koneksi pada database microsoft access dapat digunakan connection string : ”Provider = Microsoft.Jet.OLEDB.4.0; Data Source = [nama file .mdf ]”
9.4. Object Command Digunakan untuk menjalankan query dengan mengeksekusi stored procedure pada SQL server maupun string query. Input dan output dilewatkan pada object ini juga. SqlCommand sqlCom = new SqlCommand();
Membuat object sqlCom yang akan digunakan dalam program untuk akses dan manipulasi data. sqlCom.Connection = sqlCon;
Menentukan koneksi database yang akan digunakan oleh object sqlCom. sqlCOm.CommandType = [CommandType.Text CommandType.Table ]
|
CommandType.StoreProc
|
Menentukan jenis command yg digunakan, dengan menuliskan salah satu dari tiga pilihan yang tersedia. Dapat disesuaikan dengan menggunakan tabel 9.1. Tabel 9.1. Type Command Command Type Keterangan Text Digunakan untuk query seperti select, insert, dll TableDirect Digunakan untuk object tabel. StoreProcedure Digunakan untuk tipe stored procedure yang tersimpan pada server.
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
2
Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
sqlCom.CommandText = ”perintah SQL | object databse ”;
Merupakan pernyataan untuk menentukan jenis perintah (SQL atau object database) yang digunakan pada command. sqlCom.ExecuteNonQUery(); // atau sqlCom.ExecuteNonScalar();
Pernyataan tersebut digunakan untuk mengeksekusi perintah yang disiapkan sebelumnya.
9.5. Object DataSet Digunakan untuk melakukan manipulasi data sesuai yang kompleks misalnya dengan menggunakan perintah SQL. Cara membuat object ini dengan perintah : DataSet = new DataSet();
9.6. Object DataAdapter Object ini digunakan sebagai perantara komunikasi antara dataSet dan database termasuk dalam proses insert, update dan delete data. SqlDataAdapter = new SqlDataAdapter(); .Fill(dataSet,”nama tabel”);
9.2. Data Base Sebelum merancang suatu aplikasi database, tentu perlu dipersiapkan terlebih dahulu database yang akan digunakan dan dimanipulasi oleh aplikasi tersebut. Dengan menggunakan menggunakan Microsoft SQL Server 7, dibuat satu database baru dengan ini sebuah tabel. Tentu sebelumya, SQL Server Service harus di-start terlebih dahulu, seperti pada gambar 9.2.
Gambar 9.2 SQL Server Service Manager Setelah itu, dengan menggunakan Enterprise Manager, dapat ditambahkan database baru (visual) dan tabel baru (tJadwal) sesuai dengan keinginan. Proses penambahan database dan tabel ini dapat dilihat pada gambar 9.3. Tabel tersebut kemudian di-open dan ditambahkan minimal 1 (satu) data agar dapat ditampilkan pada aplikasi. Proses ini dapat dilihat pada gambar 9.4 dan gambar 9.5. Langkah selanjutnya adalah menambahkan user yang akan digunakan untuk melakukan akses pada database melalui aplikasi yang akan dirancang. Pada penambahan user ini, diatur name (visual), password (visual), database (visual) dan hak akses apa saja yang dimilik oleh user. Dapat dilihat pada gambar 9.6.
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
3
Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
Gambar 9.3 Database visual dengan tabel tJadwal.
Gambar 9.4 Penambahan Data pada tJadwal
Gambar 9.5 Data pada tJadwal
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
4
Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
Gambar 9.6 Penambahan User
9.3. DataGridView DataGridView mrupakan komponen yang digunakan untuk merancang sebuah tampilan dalam bentuk tabel. Komponen ini sangat tepat digunakan untuk berkomunikasi dengan data yang ada di dalam tabel. Beberapa properties yang penting dan sering digunakan adalah : • DataSource, digunakan untuk menentukan sumber data yang digunakan untuk oleh komponen ini. Diisi dengan nama object dataSet. • DataMember, digunakan untuk menentukan anggota datasource yang ditampilkan. Diisi dengan object nama tabel yang ada pada dataset. Komponen ini dapat ditambahkan dari toolbox pada form, seperti pada gambar 9.7. Property name dari komponen ini juga bisa disesuakan, misalnya menjadi dgv.
Gambar 9.7 DataGridView Untuk menampilkan data pada dgv ini, yang perlu dilakukan hanyalah menyesuaikan property DataSource dan DataMember. Untuk lebih jelasnya dapat dilihat pada progam 9.1.
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
5
Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
Gambar 9.8 Design Program 9.1 Program 9.1 (code). . . . using using using
. . System.Data.OleDb; System.Data.SqlClient; System.Data.Sql;
namespace db_visual { public partial class Form1 : Form { private string conStr = "data source = H4R8481RUCK; initial catalog = visual;uid=visual;pwd=visual;"; private SqlConnection sqlCon; public Form1() { InitializeComponent(); sqlCon = new SqlConnection(conStr); }
}
private void tombolOpen_Click(object sender, EventArgs e) { sqlCon.Open(); SqlCommand sqlCom = new SqlCommand(); sqlCom.Connection = sqlCon; sqlCom.CommandType = CommandType.Text; sqlCom.CommandText = "select * from tJadwal"; DataSet ds = new DataSet(); SqlDataAdapter sqlAdp = new SqlDataAdapter(sqlCom); sqlAdp.Fill(ds, "tJadwal"); dgv.DataSource = ds; dgv.DataMember = "tJadwal"; sqlCon.Close(); }
}
Pada program 9.1, object sqlCon dan conStr dideklarasikan sebagai object yang bersifat private dan dapat diakses dari semua method di dalam class ini. Dengan demikian proses pembuatan koneksi hanya perlu dilakukan 1 kali saja yaitu pada constructor dari class ini.
9.4. Manipulasi Data 9.4. Tambah Data Yang menjadi dasar dari proses penambahan data adalah perintah INSERT pada SQL. insert into () values ()
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
6
Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
Sebagai contoh, program 9.1 akan dimodifikasi untuk dapat menambahkan data pada tabel tJadwal dari database visual. Beberapa komponen textBox dan sebuah button ditambahkan seperti pada program 9.2. Beberapa baris perintah juga ditambahkan untuk proses penambahan data.
Gambar 9.9 Design Program 9.2 Program 9.2 (code)
+
private void tombolAdd_Click(object sender, EventArgs e) { sqlCon.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = sqlCon; comm.CommandType = CommandType.Text; comm.CommandText = "insert into tJadwal (kelas, hari, jam )" "values ('"+textKelas.Text[0]+"','"+textHari.Text+"','"+ textJam.Text + "')"; comm.ExecuteNonQuery(); sqlCon.Close(); }
Dengan prinsip yang sama dengan proses pembacaan database, setelah melakukan koneksi dengan SQL Server, dikirimkan perintah SQL (insert into...) untuk melakukan penambahan data.
9.5. Ubah Data Perintah SQL yang digunakan untuk melalukan pengubahan data memiliki bentuk dasar seperti ini : update set = , = , = . . . . where =
Gambar 9.10 Design Program 9.3
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
7
Modul IT210 Pemrograman Visual Fakultas Teknologi Informasi – Universitas Kristen Satya Wacana
Program 9.3 (code) private void tombolEdit_Click(object sender, EventArgs e) { sqlCon.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = sqlCon; comm.CommandType = CommandType.Text; comm.CommandText = "update tJadwal set " + "hari = '" + textUbahHari.Text + "'," + "jam = '" + textUbahJam.Text + "'" + "where kelas = '"+textUbahKelas.Text[0]+"'"; comm.ExecuteNonQuery(); sqlCon.Close(); }
9.6. Hapus Data Perintah SQL dasar yang digunakan untuk menghapus data adalah : delete from where =
Contoh penerapannya dilakukan dengan menambahkan beberapa komponen dari program 9.3 serta menambahkan beberapa perintah, seperti pada gambar 9.11 dan program 9.4.
Gambar 9.11 Design Program 9.4 Program 9.4 (code) private void tombolDelete_Click(object sender, EventArgs e) { sqlCon.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = sqlCon; comm.CommandType = CommandType.Text; comm.CommandText = "delete from tJadwal " + "where kelas = '" + textHapusKelas.Text[0] + "'"; comm.ExecuteNonQuery(); sqlCon.Close(); }
9.4. Penutup Dengan demikian maka berakhirlah pembahasan mengenai C# ini. Diharapkan penjelasan yang diberikan dapat dipahami dan berguna. Berbagai usul dan kritik sangat diharapkan guna memperbaiki kesalahan-kesalahan yang ada. . . .Terima Kasih. . . Jasson Presttiliano, S.T. Dian W. Chandra, S.Kom. Yos Richard Beeh, S.T.
Jasson Presttiliano, ST; Dian W. Chandra, S.Kom; Yos Richard Beeh, ST;
8