[Archieve] Menyimpan & Membaca Gambar Dari Database Menggunakan C#.NET


Use : Microsoft SqlServer2000 & C#.NET VS2003

Tanggal 22 Juni – 22 Agustus 2006 aku Kerja Praktek disebuah perusahaan Developer Perumahan. Salah satu project software yang aku kerjain disana adalah membuat aplikasi Manajemen Data Karyawan. Salah satu komponen yang penting adalah foto karyawan yang disimpan ke database SQL Server.

Setelah buka ‘Kitab Suci’ MSDN seharian akhirnya aku menemukan jawabannya. Cukup simple sih caranya, intinya SQL Server sudah membuat sebuah tipe data untuk menyimpan gambar, datatypenya image dgn length default 16. Sayangnya SQL Server tidak menyediakan interface/antarmuka user untuk memasukkan data image ini. Jadi isinya sebenernya adalah data biner yang panjang banget dari sebuah image, padahal format image yg biasanya kita kenal misalnya gambar.jpg atau gambar.gif. Disinilah tugas C#.Net untuk membuat antarmuka viewer gambar untuk menampilkan atau menyimpan sebuah gambar.Teori ud kepanjangan, sekarang langsung praktek…

Tampilkan data foto dari database Simpan gambar ke database

Pertama-tama kita buat sebuah database baru di SQL Server. Boleh pakai Enterprise Manager, boleh juga pake Query Analyzer. Btw ini scriptnya untuk QA :

use pubs
create table PICTURE_DB
(
   pictureId int IDENTITY(1,1) NOT NULL,
   picture Image NOT NULL,
   CONSTRAINT [PK_Picture] PRIMARY KEY CLUSTERED (pictureId)
)

Aku pake “pubs” database bawaan SQL Server.Kalo mau bikin database sendiri juga boleh.Trus pictureId kubuat identity sehingga tidak perlu diisikan valuenya setiap kali insert data baru. Yang berlu kita insert hanyalah imagenya saja.Database beres sekarang bikin aplikasi dengan C#.Net. Buat project dengan tipe Windows Application, save diharddisk.
Komponen yang pertama aku buat adalah TabControl,karena aku akan membagi fungsi program menjadi 2, yaitu menyimpan gambar ke Database dan menampilkan gambar dari database.Nama tabnya ‘Simpan’ dan ‘Tampil’.
Pada tab Simpan komponen yang dibuat :

Label;lblFilePath;set properties Textnya kosong : ""
PictureBox;pBoxSimpan
Button;btnSimpan;"Simpan"
Button;btnCari;"Cari"
Pada tab Tampil komponen yang dibuat :
PictureBox;pBoxTampil
ListBox;listBoxGambar
Button;btnTampil;"Tampil"
Button;btnRefresh;"Refresh List"

Untuk memilih gambar dari komputer kita gunakan objek
OpenFileDialog;dialogCari
keterangan format : Nama Komponen;Nama Objek;Text (untuk button)
Tampilan sudah oke, sekarang mulai mengcoding…(dari tampilan ‘View Code’)

Pertama-tama tambahkan 2 directive : using System.Data.SqlClient dan using System.IO.
Lalu kita buat juga sebuah objek lokal pada form yang nanti dipakai bersama. Objek tersebut adalah SqlConnection scon. Deklarasinya sbb :

SqlConnection scon=new SqlConnection("server=localhost;uid=sa;initial catalog=pubs");

konstruktornya kita isi dengan conn string dari database yang akan kita gunakan. Disini kita memakai server localhost, dengan userid : sa tanpa password,lalu databasenya : pubs, sesuai pembuatan tabel kita tadi.
Kode pertama untuk button btnCari :

private void btnCari_Click(object sender, System.EventArgs e)
{
      dialogCari.InitialDirectory = "C:\";
      dialogCari.Filter = "All Files|*.*|Bitmaps|*.bmp|GIFs|*.gif|JPEGs|*.jpg";
      dialogCari.FilterIndex = 2;
      if (dialogCari.ShowDialog() == DialogResult.OK )
      {
          pBoxSimpan.Image = Image.FromFile(dialogCari.FileName);
          pBoxSimpan.SizeMode = PictureBoxSizeMode.StretchImage;
          pBoxSimpan.BorderStyle = BorderStyle.Fixed3D;
          lblFilePath.Text = dialogCari.FileName;
      }
}

Penjelasan kode diatas adalah kita menggunakan objek OpenFileDialog dialogCari untuk mencari gambar dari harddisk komputer kita untuk kemudian ditampilkan ke PictureBox pBoxSimpan.Awal pencarian (InitialDirectory) mulai dari C:. Filter yang digunakan default adalah *.bmp. Dari hasil gambar yang dipilih kemudian ditampilkan ke pBoxSimpan. Lokasi Path dan nama file yang kita buka juga ditampilkan pada lblFilePath.Untuk penjelasan Fungsi yang lain dan code selengkapnya silahkan download pada link dibawah. Kalo masih bingung silahkan kirim email ke antodoroki@gmail.com. Trus jangan lupa bikin dulu Tabelnya krn aku ga bikin error handling klo tabelnya ga di temukan.Error handling disini memang sangat minim karena ini hanya ditujukan untuk tutorial, jadi untuk alasan agar mudah dipahami maka kubuat sesimple mungkin.
Nanti bisa dikembangin sendiri..oche

Thanks to ‘Kitab Suci’ Digital MSDN

Download code pada link dibawah ini…Jangan lupa ganti ekstensinya dari .odt menjadi .zip kemudian silahkan di extract isinya.

Contoh Code dalam .NET2003 dan .NET2005..

  1. bagaimana cara membuat emutor menggunakan aplikasi c#, tolong dibantu ya boz…
    thx

    • Baker
    • November 13th, 2008

    maksih ya tutorialnya…
    kira-kira sama g script c# sama vb.net coz program yang mo qbuat nantinya pke vb.net
    mohon bantuannya ya..nie jg buat TA aq..
    skli lagi trims lo ma tutorialnya….

  2. #Baker

    Sama2 teknologi .NET pasti mirip2 sih logikanya, cm kalo masalah sintaks and konsepnya kadang2 beda. C#.NET biasanya dibuat OOP murni, klo VB.NET saya blank.. kdang bisa kayak prosedural juga..

    • Ardi
    • December 8th, 2008

    aku tertarik topik “Menyimpan & Membaca Gambar Dari Database Menggunakan C#.NET” dengan menggunakan Microsoft Sql Server 2000 & C#.NET VS2003

    aku sekarang lagi mencoba membuat dengan database MYSQL untuk menyimpan data gambar dengan type data BLOB (LongBlob), tapi ketika disimpan kenapa nilai gambar yang disimpan pada database selalu NULL.

    Mohon Bantuannya, kalo bisa ada contoh codenya… he..he..

    • @Ardi
      Sayangnya aku belum pernah buat aplikasi C# yg databasenya MySQL. Harusnya sih secara logikanya sama, tapi mungkin tergantung dari penanganan untuk gambar di MySQL (binary). Klo di C# > MSSQL udah ada handlernya. Kalo ke MySQL sy kurang tau..maaf krg bisa membantu..

    • mika
    • June 2nd, 2011

    saya bingung gimana cara menampilkan images yang ada di database sql ke picturebox. misalnya saya punya dataGridViewFoto yang udah ada datanya. kmudian saya gunain “private void dataGridViewFoto_CellClick(object sender, DataGridViewCellEventArgs e)”.
    nah biasanya kan klw kita mau nampilin data yg bertipe integer kita tinggal membuat seperti ini
    txtUsername.Text = dataGridViewUser.CurrentRow.Cells[0].Value.ToString();

    nah klw mau nampilin foto gimana y????
    mas tolong kirim k email saya y, mika.ardo@yahoo.com

  3. Makasih mas bro artikelnya, kebetulan di kampus saya mendapat tugas untuk membuat aplikasi c# yang berguna untuk menyimpan gambar dan menampilkanya. Saya ijin download untuk saya pelajari dan saya kembangkan, sekali lagi matur suwun.

    • dikahfio
    • July 28th, 2012

    klo tampil blob dari mysql ke picbox mana???

  1. No trackbacks yet.

Leave a Reply

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: