Lo primero es tener una tabla que contenga la imagen que guardo en mi base de datos, por ejemplo, mi tabla sería algo así.
CREATE TABLE Imagenes ( id INT IDENTITY NOT NULL, fotos IMAGE NOT NULL )
El llenar la tabla, con las imágenes, no lo indicó aquí, pues es un proceso aparte.
Así que suponiendo que mi tabla está llena, necesito obtener la imagen de un registro específico, por ejemplo, la foto de alguien, por lo que sería algo así.
Private Sub Buscar_Imagen()
'La variable Byte tiene que ir obligatoriamente con ()
Dim byImagen() As Byte = Nothing
Dim oMemoryStream As MemoryStream
Dim bmpImagen As Bitmap
Dim dtTabla As New DataTable
'Los argumentos de conexión a la base de datos
Dim args As String = "Data Source=;" & _
"Initial Catalog=;Integrated Security=SSPI";
Using connection As SqlConnection = New SqlConnection(args)
Dim txtConexion As String = "select fotos "
txtConexion = txtConexion + "from Imagenes "
'La variable codigo la lleno antes con la identificación de la persona que voy a mostrar
txtConexion = txtConexion + "where id = " & codigo
adapter = New SqlDataAdapter(txtConexion, connection)
Try
dtTabla = New DataTable
adapter.Fill(dtTabla)
'Si no hay registros en la tabla no se muestra nada
If dtTabla.Rows.Count = 0 Then
Exit Sub
End If
Dim row As DataRow = dtTabla.Rows(0)
'Obtengo el campo de la tabla
Dim value As Object = row.Item("fotos")
'Si está en null no se muestra nada
If Not value Is DBNull.Value Then
'Convierto el campo en el tipo de dato que necesito
byImagen = CType(value, Byte())
oMemoryStream = New MemoryStream(byImagen)
bmpImagen = New Bitmap(oMemoryStream)
'Lo muestro en el PictureBox
PictureBox1.Image = bmpImagen
End If
Catch expSQL As SqlException
MsgBox(expSQL.ToString, MsgBoxStyle.OkOnly, "SQL Exception")
Exit Sub
End Try
End Using
End Sub
Nota: Recordar importar lo siguiente.
'Sirve para las sentencias SQL Imports System.Data.SqlClient 'Sirve para la memoria Imports System.IO