NET
Artikel ini telah dipublikasikan pada majalah Mikrodata Vol. 7 Series 17, July 2002. Agus Kurniawan agusk@cs.ui.ac.id http://blog.aguskurniawan.net
Pendahluan
Akses database merupakan suatu kebutuhan seorang programmer dalam menyelesaikan suatu masalah yang berhubungan dengan data. Seorang developer juga dituntut untuk dapat memilih suatu cara atau metode dalam penanganan data. Salah satu metode untuk mengakses database yaitu melalui ADO.NET, ini digunakan pada aplikasi berbasis framework .NET baik untuk aplikasi web maupun aplikasi desktop. Di bagian artikel ini juga akan dijelaskan bagaimana mengakses data dari SQL Server 2000. Semua aplikasi ini menggunakan Visual C# yang merupakan bagian Visual Studio.NET atau Visual Studio versi 7.0
Komponen ADO.NET
Sebelum kita membahas mengenai pemrograman database dengan ADO.NET sebaiknya kita mengenal komponen-komponen dalam ADO.NET. Komponen ADO.NET itu sendiri terdiri dari beberapa object antara lain: 1. SqlConnection 2. SqlCommand 3. SqlDataAdapter 4. OleDbConnection 5. OleDbCommand 6. OleDbAdapter 7. DataView 8. DataSet
1|Halaman
Gambar 1. Icon Object ADO.NET Bentuk icon object ADO.NET dapat dilihat pada gambar 1. Pada artikel kali ini hanya akan membahas object SqlConnection, SqlCommand dan SqlDataAdapter.
2|Halaman
Gambar 3. Setting database baru. Untuk membuat tabel database-nya dengan SQL Server 2000, cukup dengan klik kanan pada database yang telah kita buat (PersonalData) yang terlihat pada gambar 4 dan selanjutnya akan tampil seperti pada gambar 5,
3|Halaman
Gambar 5. Setting tabel Nama Field Propertie Data Type : int Primary Key Identity : Yes Identity Seed : 1 Identity Increment : 1 Allow Nulls : No Data Type : char (30) Allow Nulls : No Data Type : char (80) Allow Nulls : No Data Type : char (30) Allow Nulls : No Data Type : char (30) Allow Nulls : No Data Type : image Allow Nulls : Yess Data Type : int 4|Halaman
IDNumber
Allow Nulls : Yes Kemudian simpan tabel dengan nama PersonalTabel (gambar 6) dan klik tombol OK.
Merancang Aplikasi
Pada sub bagian ini, kita akan membuat aplikasi dekstop untuk memanipulasi data melalui ADO.NET. Beberapa feature dalam aplikasi adalah: Menampilkan semua data Menambah data Mengedit data Menghapus data Model arsitektur software yang akan dibuat seperti yang diperlihatkan pada gambar 7
Dari gambar 7 terlihat bahwa ada dua kelas yang masing-masing inheritance dari kelas Form serta masing-masing kelas juga mempunyai model UI sendiri-sendiri. Untuk UI dari kelas MainForm dapat dilihat pada gambar 8 dan UI untuk kelas ShowForm pada gambar 9
6|Halaman
7|Halaman
8|Halaman
Setelah data image sudah ada di memory, maka kita menampilkannya dengan menggunakan komponen PictureBox, di source code diatas dibuat dengan fungsi Gambar(), berikut ini codenya:
private void Gambar(Image img) { Rectangle rc = FotoPersonal.ClientRectangle; SizeF size = new SizeF( img.Width / img.HorizontalResolution, img.Height / img.VerticalResolution); float fScale = Math.Min( rc.Width / size.Width, rc.Height / size.Height); size.Width *= fScale; size.Height *= fScale; FotoPersonal.Image = new Bitmap(img, size.ToSize()); }
Menambah Data
Proses penambahan data dengan memanfaatkan kelas SqlDataAdapter dengan mengunakan query SQL. Dari kelas SqlDataAdapter didapatkan data bertipe DataSet dan ditambahkan baris baru ke dalam DataSet tersebut. Berikut ini cara menambah data:
string query = "select * from TPersonal"; try { SqlDataAdapter ad = new SqlDataAdapter(query,sqlConnection1); sqlConnection1.Open(); DataSet ds = new DataSet(); ad.Fill(ds,"TPersonal"); DataTable dbTable = ds.Tables["TPersonal"]; DataRow dbRow = dbTable.NewRow(); dbRow["Nama"] = Nama.Text; dbRow["Alamat"] = Alamat.Text; dbRow["Kota"] = Kota.Text; dbRow["Email"] = Email.Text;
9|Halaman
Setelah data baru ditulis di DataSet, langkah selanjutnya melakukan update data ke SQL Server. Berikut ini caranya:
dbTable.Rows.Add(dbRow); SqlCommandBuilder cb = new SqlCommandBuilder(ad); ad.Update(ds, "TPersonal"); sqlConnection1.Close();
Mengedit Data
Metode yang dipakai dalam mengedit data agak sedikit berbeda apalagi untuk data yang bertipe image. Disini kita dapat memanfaatkan kelas SqlDataAdapter, initialisasinya sebagai berikut:
string query = "select * from TPersonal where IDNumber=" + idNumber; SqlDataAdapter ad = new SqlDataAdapter(query,sqlConnection1); sqlConnection1.Open();
Setelah terhubung koneksi maka SqlDataAdapter akan menghasilkan DataSet serta mengedit data tersebut berdasarkan inputan (dalam hal ini berupa EditBox)
DataSet ds = new DataSet(); ad.Fill(ds,"TPersonal"); DataTable dbTable = ds.Tables["TPersonal"] ; DataRow dbRow = dbTable.Rows[0]; dbRow.BeginEdit(); dbRow["Nama"] = Nama.Text; dbRow["Alamat"] = Alamat.Text; dbRow["Kota"] = Kota.Text; dbRow["Email"] = Email.Text;
Setelah data disetting di DataSet maka proses update nya ke database SQL Server sebagai berikut:
SqlCommandBuilder cb = new SqlCommandBuilder(ad); ad.UpdateCommand = cb.GetUpdateCommand(); ad.Update(ds, "TPersonal"); ds.AcceptChanges(); sqlConnection1.Close();
Menghapus Data
Proses penghapusan data cukup dengan memanfaatkan query SQL yaitu DELETE. Oleh karena itu kita dapat menggunakan kelas SqlCommand. Berikut code bagaimana menghapus data:
string query = "Delete from TPersonal where IDNumber=" + Convert.ToInt32(IDnum); try { sqlCommand1 = new SqlCommand(query,sqlConnection1); sqlConnection1.Open(); sqlCommand1.ExecuteNonQuery(); sqlConnection1.Close(); DisplayData(); } catch(SqlException err) { MessageBox.Show(err.Message,"Database Error", MessageBoxButtons.OK,MessageBoxIcon.Error); if( sqlConnection1.State ==ConnectionState.Connecting || sqlConnection1.State ==ConnectionState.Executing || sqlConnection1.State ==ConnectionState.Fetching || sqlConnection1.State ==ConnectionState.Open ) sqlConnection1.Close(); }
11 | H a l a m a n
Source Code
Source code dari artikel ini sudah ada. Sebelum melakukan running aplikasi harus disetting database dan baca file readme.txt. Disamping itu, anda dapat memperlancarkan pemrograman C# anda dalam mailing list C# Indonesia. Disana kita dapat belajar bersama. Alamat URLnya : http://groups.yahoo.com/group/csharp_indo atau kirim email kosong ke csharp_indo-subscribe@yahoogroups.com
Referensi
1. MSDN .NET library 2. SQL Server Online Book
12 | H a l a m a n