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!