{"id":2819,"date":"2014-02-19T02:34:39","date_gmt":"2014-02-19T02:34:39","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2014\/02\/19\/tanya-cara-menampilkan-data-image-dari-mysql-ke-picturebox-di-vb-net-collection-of-common-programming-errors\/"},"modified":"2014-02-19T02:34:39","modified_gmt":"2014-02-19T02:34:39","slug":"tanya-cara-menampilkan-data-image-dari-mysql-ke-picturebox-di-vb-net-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2014\/02\/19\/tanya-cara-menampilkan-data-image-dari-mysql-ke-picturebox-di-vb-net-collection-of-common-programming-errors\/","title":{"rendered":"[Tanya] cara menampilkan data Image dari Mysql ke picturebox Di VB.Net-Collection of common programming errors"},"content":{"rendered":"<p>selamat sore master..<\/p>\n<p>sebelumnya saya membuat program untuk menyimpan dan menampilkan foto dari database mysql,,<br \/>\nfile yg disimpan kedalam database = .Jpeg dan .jpg<\/p>\n<p>nah untuk field2 yang ada didatabase saya buat seperti ini :<\/p>\n<p>===================================<\/p>\n<p>Idfoto\u00a0 int Not Null (Set Primary Key) Auto Increment<\/p>\n<p>Nama\u00a0 Varchar 150 Null<\/p>\n<p>Foto MediumBlob Not Nul<\/p>\n<p>===================================<\/p>\n<p>dan desain form saya buat seperti ini :<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/social.msdn.microsoft.com\/Forums\/getfile\/271499\" \/><\/p>\n<p>setelah itu, saya ketik code untuk proses simpan dan menampilkan gambarnya kedalam picturebox, seperti ini :<\/p>\n<pre>Imports MySql.Data\nImports MySql.Data.MySqlClient\nImports System.IO\n\nPublic Class XtraForm1\nPrivate conn As New MySqlClient.MySqlConnection\nPrivate strSql As String = String.Empty\nDim sql_connection As MySqlClient.MySqlConnection = conn\nDim sql_command As MySqlClient.MySqlCommand\nDim sql_reader As MySqlClient.MySqlDataReader\n\nPublic Sub New()\nInitializeComponent()\nDim strConn As String = \"server=localhost;uid=mustafa;pwd=123asdf;database=testIQ;Port=3306\"\nconn.ConnectionString = strConn\nconn.Open()\n\nEnd Sub\n\nPrivate Sub SaveGambar(ByVal namanya As String)\nDim cmd As New MySqlCommand\nDim FileSize As UInt32\nDim rawData() As Byte\nDim fs As FileStream\n\nTry\nfs = New FileStream(namanya, FileMode.Open, FileAccess.Read)\nFileSize = fs.Length\nrawData = New Byte(FileSize) {}\nfs.Read(rawData, 0, FileSize)\nfs.Close()\nfs.Dispose()\ncmd.Connection = conn\ncmd.CommandText = \"Insert into gambar (NAMA,FOTO) values (@nama,@File)\"\ncmd.Parameters.AddWithValue(\"@nama\", namanya)\ncmd.Parameters.AddWithValue(\"@File\", rawData)\ncmd.ExecuteNonQuery()\nCatch ex As Exception\nMessageBox.Show(\"error: \" &amp; ex.Message, \"Error\", _\nMessageBoxButtons.OK, MessageBoxIcon.Error)\nEnd Try\nEnd Sub\n\nPrivate Sub LoadGambar(ByVal namanya As String)\nDim SQL As String\nTry\nDim arrImage() As Byte\nSQL = \"SELECT FOTO FROM gambar where NAMA = '\" + namanya + \"' \"\nsql_command = New MySqlClient.MySqlCommand(SQL, sql_connection)\nsql_reader = sql_command.ExecuteReader\nWhile sql_reader.Read()\narrImage = sql_reader.Item(\"FOTO\")\nDim mstream As New MemoryStream(arrImage)\n\n'untuk menampilkan gambar dari database.....\nPictureBox2.Image = Image.FromStream(mstream)\nmstream.Close()\n\nEnd While\n\nsql_reader.Close()\nCatch ex As Exception\nMessageBox.Show(\"error: \" &amp; ex.Message, \"Error\", _\nMessageBoxButtons.OK, MessageBoxIcon.Error)\nEnd Try\nEnd Sub\n\nPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click\nIf OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then\nTextBox1.Text = OpenFileDialog1.FileName\nTextBox2.Text = OpenFileDialog1.FileName\n\n'untuk priview gambar yang akan disimpan kedalam database...\nPictureBox1.Image = Image.FromFile(TextBox1.Text)\nSaveGambar(TextBox1.Text)\nMessageBox.Show(\"Data saved\", \"Info\", MessageBoxButtons.OK)\nEnd If\nEnd Sub\n\nPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click\nLoadGambar(TextBox1.Text)\nEnd Sub<\/pre>\n<p><\/p>\n<p>Setelah Saya Coba untuk simpan file gmbar kedalam database <strong>sudah berhasil<\/strong>.<\/p>\n<p>namun saat saya Klik Tombol <strong>&#8220;Show&#8221;<\/strong> Untuk Menampilkan kembali dari DBase ke picturebox,, <strong>BELUM BISA<\/strong>, dan tidak terjadi perubahan apa2 pada picutrebox, serta pesan error juga <strong>TIDAK<\/strong> muncul,,<\/p>\n<p>setelah saya cek di database, hasil dari penyimpanan gambar ke dalam tabel seperti ini (Saya Menggunakan Program Navicat for Mysql untuk menampilkan seperti gambar beikut) :<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/social.msdn.microsoft.com\/Forums\/getfile\/271501\" \/><\/p>\n<p>Nah, Yang ingin Saya Tanyakan Adalah :<\/p>\n<p><strong>1. Apakah Dari Kondisi tabel di mysql seperti gambar diatas, menandakan bahwa file gambar sudah tersimpan kedalam database atau belum.??<\/strong><\/p>\n<p><strong>2. Untuk Proses Menampilkan gammbar kedalam picturebox, itu dimana salah nya ya..?????<\/strong><\/p>\n<p><strong>3. atau ada cara lain yg memang khusus diterapkan di vb.net 2010..???<\/strong><br \/>\nsaya Menggunakan vb.net 2010, Mysql Conector Net 6.5.4 &amp; DataBase Mysql dari Xampp. saya harap master2 skalian mau memberi pencerahan atas masalah yang saya jelaskan .. terima kasih&#8230;<\/p>\n<p>by:tafa_rie@yahoo.com<\/p>\n<ol>\n<li>\n<p>Berikut saya contohkan untuk membaca dua record berdasarkan kode Anda di atas<\/p>\n<pre>Private Sub LoadGambar(ByVal nama1 As String, ByVal nama2 As String)\n    Dim cmd As New MySqlCommand\n    Dim ms As New MemoryStream\n    Dim dr As MySqlDataReader\n    Dim arrImage1() As Byte\n    Dim arrImage2() As Byte\n\n    cmd.Connection = conn\n    cmd.CommandText = \"Select Foto from gambar where NAMA=@nama1 Or NAMA=@nama2\"\n    cmd.Parameters.AddWithValue(\"@nama1\", nama1)\n    cmd.Parameters.AddWithValue(\"@nama2\", nama2)\n    dr = cmd.ExecuteReader\n    ' Apakah ada record yang bisa dibaca?\n    If dr.Read() Then \n        arrImage1 = dr(\"Foto\")\n    End If\n    ' Apakah ada record berikutnya yang bisa dibaca?\n    If dr.Read() Then \n        arrImage2 = dr(\"Foto\")\n    End If\n    dr.Close()\nEnd Sub<\/pre>\n<p>Untuk membaca banyak records bisa menggunakan perulangan<\/p>\n<pre>While dr.Read()\n    ' Baca data per record di sini\nEnd While<\/pre>\n<p><\/li>\n<li>\n<p>terima kasih Ahmad Masykur\u00a0 atas reply nya&#8230;<\/p>\n<p>apakah yang anda mksud coding nya dirubah jadi seperti ini :<\/p>\n<pre>            While sql_reader.Read()\n                If sql_reader.Read = True Then\n                    arrImage = sql_reader.Item(\"FOTO\")\n                    Dim mstream As New MemoryStream(arrImage)\n                    PictureBox2.Image = Image.FromStream(mstream)\n                    mstream.Close()\n                Else\n                    MessageBox.Show(\"Data Tidak Terbaca\", \"info\", MessageBoxButtons.OK, MessageBoxIcon.Warning)\n                End If\n            End While<\/pre>\n<p>dan juga saya coba codenya seperti ini :<\/p>\n<pre>            If sql_reader.HasRows Then\n                If sql_reader.Read Then\n                    arrImage = sql_reader.Item(\"FOTO\")\n                    mstream = New MemoryStream(arrImage)\n                    PictureBox2.Image = Image.FromStream(mstream)\n                    mstream.Close()\n                    MessageBox.Show(\"Data Tidak Terbaca\", \"info\", MessageBoxButtons.OK, MessageBoxIcon.Warning)\n                End If\n            End If\n            sql_reader.Close()<\/pre>\n<p><\/p>\n<p>saya sudh mencoba seperti code diatas, tapi hasilnya sma saja, fotonya tidak tampil&#8230;<\/p>\n<p>apakah ada yg salah dalam peng-codingan saya, atau ada cara lainnya.?<\/p>\n<p>terima kasih..<\/p>\n<\/li>\n<li>\n<p>Bukan begitu. Maksud saya apakah ada record yang dibaca? Coba contoh berikut<\/p>\n<pre>If sql_reader.Read()    \n    arrImage = sql_reader(\"FOTO\")\n    Dim mstream As New MemoryStream(arrImage)\n    PictureBox2.Image = Image.FromStream(mstream)\n    mstream.Close()\nElse\n    MessageBox.Show(\"Data Tidak Terbaca\", \"info\", MessageBoxButtons.OK, MessageBoxIcon.Warning)\nEnd If<\/pre>\n<\/li>\n<li>\n<p>terima kasih telah membantu,, Dan akhirnya saya bisa menampilkan gambarnya dari mysql ke picturebox,\u00a0 Setelah saya rubah Query Sql nya dari :<\/p>\n<pre>SELECT FOTO from gambar where Nama ='\" &amp; namanya &amp; \"'\"<\/pre>\n<p>menjadi seperti ini :<\/p>\n<pre>SELECT FOTO from gambar where ID ='\" &amp; Idnya &amp; \"'\"<\/pre>\n<p><\/p>\n<p>maka imagenya <strong>muncul<\/strong> di picturebox<strong>.<\/strong><\/p>\n<p><strong>yang ingin saya Tanyakan Kembali :<\/strong><\/p>\n<p><strong>1. kenapa<\/strong> kalau di SELECT berdasarkan <strong>nama<\/strong> dari foto tersebut <strong>tidak bisa<\/strong>,.??<\/p>\n<p><strong>2.<\/strong> Dan juga kalau di SELECT FOTO from gambar Where ID=&#8217;1&#8242; and ID=&#8217;2&#8242;,, juga <strong>tidak muncul<\/strong><\/p>\n<p>\u00a0\u00a0\u00a0 <strong>datanya. ?<\/strong><\/p>\n<p><strong>saya coba query No.1 Dan 2<\/strong>, LANGSUNG di Mysql nya, hasil record yg terbaca\u00a0 = NULL&#8230;<\/p>\n<p>kenapa bisa demikian.?<\/p>\n<p>terima kasih..<\/p>\n<\/li>\n<li>\n<p>Kalo query-nya pake parameter seperti command insert-nya bisa?<\/p>\n<pre>SELECT FOTO from gambar where Nama = @nama<\/pre>\n<p>Kemungkinan isi\u00a0variabel yang dimasukkan memang tidak sama dengan isi field.<\/li>\n<li>\n<p>saya sudah coba dan ternyata bisa tampil fotonya&#8230;.<\/p>\n<p>kemudian saya coba untuk menampilkan 2 foto sekaligus dari database, dengan menambahkan querynya seperti ini :<\/p>\n<pre>SELECT FOTO from gambar where Nama=@nama1 And Nama=@nama2<\/pre>\n<p>untuk code nya seperti ini :<\/p>\n<p>kode simpan = Masih sama dengan yang diatas (Private Sub SaveGambar).<\/p>\n<p>code pada button BrowseAndSave :<\/p>\n<pre>    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click\n        With OpenFileDialog1\n            .InitialDirectory = \"E:\\foto\"\n        End With\n\n        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then\n            If TextBox1.Text = \"\" Then\n                TextBox1.Text = OpenFileDialog1.FileName\n                PictureBox1.Image = Image.FromFile(TextBox1.Text)\n                SaveGambar(TextBox1.Text)\n            Else\n                TextBox4.Text = OpenFileDialog1.FileName\n                PictureBox1.Image = Image.FromFile(TextBox4.Text)\n                SaveGambar(TextBox4.Text)\n            End If\n            MessageBox.Show(\"Data Sudah Disimpan\", \"Info\", MessageBoxButtons.OK)\n        End If\n    End Sub<\/pre>\n<p>untuk <strong>Load Gambar<\/strong>nya :<\/p>\n<pre>    Private Sub LoadGambar(ByVal nama1 As String, ByVal nama2 As String)\n        Dim cmd As New MySqlCommand\n        Dim ms As New MemoryStream\n        Dim dr As MySqlDataReader\n        Dim arrImage1() As Byte\n        Dim arrImage2() As Byte\n\n        cmd.Connection = conn\n        cmd.CommandText = \"Select Foto from gambar where NAMA=@nama1 Or NAMA=@nama2\"\n        cmd.Parameters.AddWithValue(\"@nama1\", nama1)\n        cmd.Parameters.AddWithValue(\"@nama2\", nama2)\n        dr = cmd.ExecuteReader\n\n        If dr.HasRows Then\n            If dr.Read() Then\n                'tampilan foto 1\n                arrImage1 = dr.Item(\"FOTO\")\n                Dim mstream1 As New MemoryStream(arrImage1)\n                With PictureBox2\n                    .Image = Image.FromStream(mstream1)\n                    .SizeMode = PictureBoxSizeMode.StretchImage\n                End With\n                mstream1.Close()\n\n                'tampilan foto 2\n                arrImage2 = dr.Item(\"FOTO\")\n                Dim mstream2 As New MemoryStream(arrImage2)\n                With PictureBox2\n                    .Image = Image.FromStream(mstream2)\n                    .SizeMode = PictureBoxSizeMode.StretchImage\n                End With\n                mstream2.Close()\n            End If\n        End If\n        dr.Close()\n    End Sub<\/pre>\n<p><\/p>\n<p>di button <strong>Show<\/strong>nya, Saya Panggil code nya seperti ini :<\/p>\n<pre>Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click\n        'Textboxt1 = Namafoto1 ; Textboxt4 = = Namafoto2\n        loadgbr(TextBox1.Text, TextBox4.Text)\nEnd Sub<\/pre>\n<p><\/p>\n<p>namun <strong>yang tampil hanya Foto Yang Ke 1<\/strong>. seperti ini :<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/social.msdn.microsoft.com\/Forums\/getfile\/272263\" \/><\/p>\n<p>Padahal saya sudah coba querynya di mysql nya. dan hasilnya 2 record :<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/social.msdn.microsoft.com\/Forums\/getfile\/272265\" \/><\/p>\n<p>itu dimana ya salahnya..??<\/p>\n<p>kalau dilihat dari kode untuk Loadgambarnya, gk ada errornya..<\/p>\n<p>terima kasih..<\/p>\n<\/li>\n<li>\n<p>Itu gambar tidak berasal dari database tetapi dari kode saat menyimpan.<\/p>\n<p>Query Anda di aplikasi\u00a0tidak menghasilkan records satu pun (0 records). Query yang anda tulis antara aplikasi dengan di MySQL berbeda. Silakan periksa kembali query Anda.<\/p>\n<\/li>\n<li>\n<p>jadi kalau mau ambil record pertama dan kedua dari tabel bagaimana caranya ya.?<\/p>\n<p>kode yang ini :<\/p>\n<pre><br \/>dr.Item(\"FOTO\")<\/pre>\n<p>ingin saya rubah menjadi :<\/p>\n<pre><br \/>dr.rows(0).Item(\"FOTO\") 'untuk mengambil record pertama<\/pre>\n<pre>dr.rows(1).Item(\"FOTO\") 'untuk mengambil record kedua<\/pre>\n<p>tapi tidak bisa,, dan muncul error&#8230;<\/p>\n<p>mohon diberi solusinya ya&#8230;<\/p>\n<p>terima kasih..<\/p>\n<\/li>\n<li>\n<p>Berikut saya contohkan untuk membaca dua record berdasarkan kode Anda di atas<\/p>\n<pre>Private Sub LoadGambar(ByVal nama1 As String, ByVal nama2 As String)\n    Dim cmd As New MySqlCommand\n    Dim ms As New MemoryStream\n    Dim dr As MySqlDataReader\n    Dim arrImage1() As Byte\n    Dim arrImage2() As Byte\n\n    cmd.Connection = conn\n    cmd.CommandText = \"Select Foto from gambar where NAMA=@nama1 Or NAMA=@nama2\"\n    cmd.Parameters.AddWithValue(\"@nama1\", nama1)\n    cmd.Parameters.AddWithValue(\"@nama2\", nama2)\n    dr = cmd.ExecuteReader\n    ' Apakah ada record yang bisa dibaca?\n    If dr.Read() Then \n        arrImage1 = dr(\"Foto\")\n    End If\n    ' Apakah ada record berikutnya yang bisa dibaca?\n    If dr.Read() Then \n        arrImage2 = dr(\"Foto\")\n    End If\n    dr.Close()\nEnd Sub<\/pre>\n<p>Untuk membaca banyak records bisa menggunakan perulangan<\/p>\n<pre>While dr.Read()\n    ' Baca data per record di sini\nEnd While<\/pre>\n<p><\/li>\n<li>\n<p>terima kasih ahmad masykur karena sudah mau berusaha membantu saya&#8230;<br \/>\nakan saya coba dulu code nya..<\/p>\n<p>nnti kl ada masalah, akan saya tanyakan kembali&#8230;<\/p>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>selamat sore master.. sebelumnya saya membuat program untuk menyimpan dan menampilkan foto dari database mysql,, file yg disimpan kedalam database = .Jpeg dan .jpg nah untuk field2 yang ada didatabase saya buat seperti ini : =================================== Idfoto\u00a0 int Not Null (Set Primary Key) Auto Increment Nama\u00a0 Varchar 150 Null Foto MediumBlob Not Nul =================================== dan [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2819","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/2819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=2819"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/2819\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=2819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=2819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=2819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}