Kamis, 29 Agustus 2013

         Sekarang saya mau share nie cara memanggil,simpan & menampilkan gambar,.. Nah ada beberapa cara untuk memanggil,simpan & menampilkan gambar terkadang menggunakan cara menyimpan langsung gambar ke dalam database. Ada juga cara menyimpan hanya alamat gambar ke database kata-katanya sih supaya kapasitas database tidak berat dan memungkinkan untuk penyimpanan data skala besar. Nah sekarang saya mau share menggunakan cara kedua yaitu menyimpan data gambar dari folder di Direktori ke database. Dapet dari mbah google juga sih, ets..tapi saya gak copy paste loh.. en saya rubah2 dikit lah.. DIKIT,hehehhe.. Ok basa-basinya cukup sudah,sekarang waktunya berCODING-ria...jrenk..jrenk.. 

Berikut langkah – langkahnya :
Langkah Pertama        : buat tabel untuk simpan data gambar disini aku makai tb_foldergambar
Langkah Kedua           : buat 3 kolom yaitu kd_gambar(interger),nama(varchar),alamat(varchar)
Add caption
Langkah Ketiga           : buka vb.net nya ikutin gambar ini tp,sesuai dengan selera juga gak apa-apa sih,..

Add caption

 Dengan properti berikut;

Nama Kontrol
Values
Keterangan
Textbox
txt_kdgambar
Textbox kode gambar
Textbox
txt_nmgambar
Textbox nama gambar
Label
lbl_alamat
Label alamat gambar
Button
btnpilih
Button pilih gambar
Button
btnsimpan
Button simpan gambar
PictureBox
pct_gambar
PictureBox
OpenDialog1
OpenDialog1
OpenDialog1

Langkah Kelima           : Anda harus membuat koneksi terlebih dahulu. Disini saya memakai database Mysql dengan connector MyODBC-3.51.12-win32.

Source codenya untuk memanggil gambar :

Imports System.Data.Odbc
Public Class Form1
    Dim conn As New accesdata.koneksi
    Private PathFile As String = Nothing
    Dim sql As String
    Private Sub btnpilih_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnpilih.Click
        On Error Resume Next
        OpenFileDialog1.Filter = "JPG Files(*.jpg)|*.jpg|JPEG Files (*.jpeg)|*.jpeg|GIF Files(*.gif)|*.gif|PNG Files(*.png)|*.png|BMP Files(*.bmp)|*.bmp|TIFF Files(*.tiff)|*.tiff"
        OpenFileDialog1.FileName = ""
        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            pct_gambar.SizeMode = PictureBoxSizeMode.StretchImage
            pct_gambar.Image = New Bitmap(OpenFileDialog1.FileName)
            btnpilih.Enabled = True
            PathFile = OpenFileDialog1.FileName
            txt_nmgambar.Text = PathFile.Substring(PathFile.LastIndexOf("\") + 1)
            lbl_alamat.Text = OpenFileDialog1.FileName
            pct_gambar.Image = Image.FromFile(lbl_alamat.Text)
        End If
    End Sub

Source code untuk simpan gambar :

Private Sub btnsimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsimpan.Click
        Try
            sql = "Insert into tb_foldergambar (kd_gambar,nama,alamat) values (?,?,?)"
            Dim mycomm As OdbcCommand = New OdbcCommand(sql, conn.buka)
            With mycomm.Parameters
                .Add("?", OdbcType.VarChar, 10).Value = txt_kdgambar.Text.Trim
                .Add("?", OdbcType.VarChar, 50).Value = txt_nmgambar.Text.Trim
                .Add("?", OdbcType.VarChar, 100).Value = lbl_alamat.Text.Trim
            End With
            mycomm.ExecuteNonQuery()
            mycomm = Nothing
            MsgBox("Simpan Data Foto ke database berhasil", MsgBoxStyle.MsgBoxSetForeground, "Simpan")
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

Source code untuk Menampilkan gambar :

Private Sub txt_kdgambar_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_kdgambar.TextChanged
        Dim sql As String = ("select*from tb_foldergambar where kd_gambar ='" & txt_kdgambar.Text & "'")
        Dim cmd = New OdbcCommand(sql, conn.buka)
        Dim rd As OdbcDataReader
        rd = cmd.ExecuteReader
        rd.Read()
        If rd.HasRows Then
            txt_nmgambar.Text = rd.Item("nama")
            lbl_alamat.Text = rd.Item("alamat")
            pct_gambar.ImageLocation = rd.Item("alamat") 'untuk mencari lokasi gambar pada direktori
            pct_gambar.SizeMode = PictureBoxSizeMode.StretchImage
        End If
    End Sub


Semoga Bermanfaat




24 komentar:

  1. Min, coding ini buat apa yaa (sql, conn.buka) ...?
    saya terapkan tp masih error.

    BalasHapus
    Balasan
    1. itu memanggil dari class koneksi gan..
      kebetulan saya pake koneksi odbc

      Hapus
  2. cara bikin koneksi odbc gmn min .?

    BalasHapus
    Balasan
    1. ini class koneksinya gan

      Imports System.Data.Odbc
      Imports System.IO
      Imports Microsoft.VisualBasic
      Namespace accesdata
      Public Class koneksi
      Dim conn As New Odbc.OdbcConnection("DSN=presensi")
      Protected cmd As Odbc.OdbcCommand
      Protected da As Odbc.OdbcDataAdapter
      Protected ds As DataSet
      Protected dt As DataTable

      Public Function executeQuery(ByVal Query As String) As DataTable
      cmd = New OdbcCommand(Query, conn)
      da = New OdbcDataAdapter(cmd)
      da.SelectCommand = cmd
      ds = New Data.DataSet
      da.Fill(ds)
      dt = ds.Tables(0)
      Return dt
      dt = Nothing
      da = Nothing
      ds = Nothing
      cmd = Nothing
      End Function
      Public Function buka() As OdbcConnection
      If conn.State <> ConnectionState.Open Then
      conn.Open()
      End If
      Return conn
      End Function
      Public Function tutup() As OdbcConnection
      conn = Nothing
      Return conn
      End Function
      Public Function ambiltgl()
      buka()
      buka()
      Dim strsql As String = "select current_date tgl;"
      Dim mycmd As New OdbcCommand(strsql, conn)
      Dim rdr As OdbcDataReader = mycmd.ExecuteReader
      If rdr.Read Then
      dcservertgl = rdr("tgl").ToString()
      End If
      rdr.Close()
      rdr = Nothing
      mycmd = Nothing
      Return conn
      End Function
      End Class
      End Namespace


      kemudian untuk memanggik koneksinya di form lain dg code ini :

      Dim conn As New accesdata.koneksi 'KONEKSI

      Hapus
    2. in class koneksinya?
      ga ngerti mba hehe

      Hapus
  3. Balasan
    1. kalo mau ini buat referensi
      https://social.msdn.microsoft.com/Forums/it-IT/f9ab632a-802b-476a-9716-043e012f80b2/tanya-cara-menampilkan-data-image-dari-mysql-ke-picturebox-di-vbnet?forum=visualbasicid

      Hapus
  4. setelah +- 13 jam mencari..
    akhirnya nemu ni mari..
    makasih banyak min..
    kalau ada tutorial langsung nyimpan ke database (tetap makai ODBC) tolong inbox ke email ane min : fadhlanarnis007@gmail.com
    sekali lagi terima kasih banyak min

    BalasHapus
    Balasan
    1. alhamdulillah gan jika postingan saya yg sederhana ini membantuh.. untuk pertanyaan yg sudah lama bangt tdk saya jawab.. mohon maaf gan.. karna saya sudah beberapa bulan ini off dari dunia coding :D

      Hapus
  5. gan,, klo pindahin gambarnya langsung ke directory tempan simpan program gmna coding...???

    BalasHapus
  6. makasih bnyak min. dgn waktu 2 jam, baru bisa menyelesaikannya. meskipun class koneksinya kita berbeda.

    BalasHapus
    Balasan
    1. alhamdulillah gan jika postingan saya yg sederhana ini membantuh..

      Hapus
  7. bang gimana cara nyimpan alamat_gambarnya ke database mysql setelah itu kita tampilin lagi ke textbox

    BalasHapus
  8. Ntap mas bro makasi infonya semoga sukses yang buat blognya

    BalasHapus
  9. gan ane kan bikin program visual studio 2010 dengan menggunakan database miscrosoft accses 2010 pas udah di inut data di programnya udah di di save, tapi ko pas di buka lagi programnya malah hilang datanya mohon pencerahanya gan

    BalasHapus
    Balasan
    1. mungkin data base conction nya harus di update brow

      Hapus
  10. Min mw tanya kalo bikin.a pake koneksi SQL server gmn cara.a ya ???

    BalasHapus
  11. Kenapa Windows.Forms masih saja salah ??
    Itu hruss buat apa, agar tidak salah ??

    BalasHapus
    Balasan
    1. lihat di properties projectnya
      Target Frameworknya .NET Berapa?

      Hapus
    2. Windows.forms ganti ke System.Windows.Forms

      Hapus
  12. cara memasukkan ke datagridview image column gimana?
    kan itu varchar, maksudsaya konvernya gman?

    BalasHapus