Mengembalikan Image BLOB Menggunakan Web Service (VB.NET)

Pada kasus ini kita menggunakan SQLSERVER sebagai databasenya, dengan field seperti ini:

Field Tipe Data
==============
RowID int(11)
Picture BLOB

Yang perlu anda lakukan adalah mengganti parameter yang digunakan untuk koneksi ke SQLSERVER:
Buat method seperti ini pada Web Service Anda…

' Parameternya adalah sebuah id suatu record tertentu
Public Function GetPicture(ByVal RowID As Long) As Byte()
  Dim Con As SqlClient.SqlConnection
  Dim DA As SqlClient.SqlDataAdapter
  Dim SQL As String
  Dim BA As Byte()
  Dim SC As New SqlCommand

  SQL = "SELECT Picture FROM Pictures WHERE  RowID = " & RowID
  Con = New SqlConnection("User ID=YourID;password=YourPassword;" & _"Data Source=SQLSERVER;Initial Catalog=DatabaseName")

  SC.Connection = Con
  SC.Connection.Open()
  SC.CommandType = CommandType.Text
  SC.CommandText = SQL
  BA = CType(SC.ExecuteScalar(), Byte())
  SC.Connection.Close()
  SC.Dispose()
  Return BA

End Function

Kemudian siapkan sebuah picture box (PictureBox1) dan buat prosedur ini pada VB Desktop Anda:

Public Sub SetPicBox(ByVal ImageArray As Byte())
  Dim ArraySize As New Integer
  ArraySize = ImageArray.GetUpperBound(0)

  Dim fs As New System.IO.FileStream("tmp.gif",
  System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write)
  fs.Write(ImageArray, 0, ArraySize + 1)
  fs.Close()
  PictureBox1.Image = New Bitmap("tmp.gif")
End Sub

Dan terakhir pada event on_Load pada form Anda, buat prosedur ini.
Anda bisa menggantinya dengan event-event lain.
Pada contoh dibawah ini, kita mencoba menggambil record dengan nomor 23:

Private Sub frmPicture_Load(ByVal sender As Object,
  ByVal e As System.EventArgs) Handles MyBase.Load
  SetPicBox(YourService.GetPicture(23))
End Sub 

Nah, selamat mencoba!

7 thoughts on “Mengembalikan Image BLOB Menggunakan Web Service (VB.NET)

  1. Salam Kenal ya mas .. Keren Kok Artikelnya :D .. Mas Pernah Buat Web Service Balikin File XML nda Klo Ada Bagi Ya .. :D

  2. bro…minta bantuan nya neh

    inii pertama kali saya pake vbnet+sqlite sebelumnya pake vb6
    yang jadi masalah:
    1.cara bikin koneksinya gmn ya?? cara manual gtu…klo bisa kasih contoh gtu, thx bgt lho..
    2.make blobnya gmn??
    mohon bantuannya ya :)

  3. kok pake sqlite pak ga pake SQL Compact Framework atau SQL express aja pak kan free dan lebih banyak support di .NET, klo SQL Lite saya blum pernah pake di VB, coba kunjungi situs SQLLite kemudian cari provider untuk ADO.NET, terus librarynya harus di import di program pak

  4. Terima kasih atas tutorialnya Pak.

    Saya tertarik dengan tulisan bapak diatas, tapi ada hal yg “menggelitik” karena ada bbrp hal yang tidak diketahui oleh Saya.

    1. Apakah Tipe data BLOB apakah sama dengan Varbinary di SQL server? Bila tdk, apa padanannya di SQL Server?
    2. Apakah “tmp.gif” itu path dari file image atau hanya nama file image?
    3. Bagaimanakah menampilkan image di dalam datagridview?

    Terimak kasih. Sukses selalu.

Leave a comment