| ID | Asunto | Fecha | Nick | |
| 55521 | Imagen en Access | 05/07/11 12:49 | lucas.bass | |  |
Hola buenas de nuevo a todos. Por mas que intento, no consigo guardar una imagen en Access. Tengo un PictureBox1 asociado a un OpenFileDialog1. Pero de todas formas no se de que tipo de datos tengo que declarar la columna para la imagen. Para hacerlo desde VB.NET (desde access es ObjetoOLE). Tengo esto, pero falla por todos los lados: Private Sub
btnGuardarImagen_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnGuardarImagen.Click
Dim ms As New System.IO.MemoryStream()
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim imagenbit() As Byte = ms.GetBuffer
ms.Close()
conexion.Open()
Dim cmd As New OleDb.OleDbCommand("Insert
Into ImagenesAfectos (id_afecto,nombre_imagen,imagen) Values ('1','" +
Archivo1.FileName + "','" + imagenbit.ToString + "')", conexion)
cmd.ExecuteNonQuery()
conexion.Close()
MsgBox("Imagen guardada")
End Sub
Private Sub
btnCargarImagen_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCargarImagen.Click
conexion.Open()
Dim da As New OleDb.OleDbDataAdapter("Select imagen From ImagenesAfectos Where ID='1'", conexion)
Dim dt As New DataTable
da.Fill(dt)
conexion.Close()
Dim image() As
Byte = CType(dt.Rows(0)(0), Byte())
Dim ms As New System.IO.MemoryStream(image)
Dim img As New Bitmap(Application.StartupPath + "\Temp.jpg")
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
PictureBox1.Image = img
End SubOs agradezco muchisimo vuestra ayuda. Saludos! |
|
| ID | Asunto | Fecha | Nick | |
| 55525 | Re: Imagen en Access (Resp: 55521) | 07/07/11 08:51 | lucas.bass | |  |
Bueno, por fin.... Lo dejo por si a alguien le hace falta: Private Sub
btnGuardarImagen_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnGuardarImagen.Click
Dim ms As New System.IO.MemoryStream()
PictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim imagenbit() As Byte = ms.GetBuffer
ms.Close()
conexion.Open()
Dim cadenaBits As String = ""
For i = 0 To UBound(imagenbit)
cadenaBits += "." + imagenbit(i).ToString
Next
Dim cmd As New OleDb.OleDbCommand("Insert
Into ImagenesAfectos (id_afecto,nombre_imagen,imagen) Values ('1','" +
Archivo1.FileName + "','" + cadenaBits + "')", conexion)
cmd.ExecuteNonQuery()
conexion.Close()
End Sub
Private Sub
btnCargarImagen_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCargarImagen.Click
conexion.Open()
Dim da As New OleDb.OleDbDataAdapter("Select imagen From ImagenesAfectos Where ID_Afecto='1'",
conexion)
Dim dt As New DataTable
da.Fill(dt)
conexion.Close()
Dim cadenaBits() As String =
Split(dt.Rows(0)(0), ".")
Dim bits(UBound(cadenaBits) - 1) As Byte
For i = 0 To UBound(bits)
bits(i) = CByte(cadenaBits(i + 1))
Next
Dim ms As New System.IO.MemoryStream(bits)
PictureBox1.Image = Image.FromStream(ms)
End Sub
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |