Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/01/2009, 02:47
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Guardar imagenes en Access

Cita:
Iniciado por rishart Ver Mensaje
Hola amigos, disculpen las molestias ocacionadas pero alguien podria ayudarme sobre como le puedo hacer para guardar una imagen en access con vb.net, solo me gustaria si alguen puede decirme como guardar es decir, la estructura que debe llevar con la instruccion insert y update. espero puedan ayudarme, les doy las gracias de antemano y les envio un cordial saludo
Hola, mira si te vale este procedimiento:

Código:
Private Sub GuardarImagen(ByVal nReg As Integer)
        OpenFileDialog1.Filter = "Archivos de imágenes (*.bmp; *.jpg; *.gif; *.tiff; *.png) | *.bmp;*.jpg;*.gif;*.tiff;*.png"
        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            Try
                Dim fs As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
                Dim br As BinaryReader = New BinaryReader(fs)
                Dim b() As Byte = New Byte(fs.Length) {}
                ReDim b(fs.Length)
                br.Read(b, 0, CInt(fs.Length))
                fs.Close()

                Dim cn As New ADODB.Connection
                cn.Open("Provider=Microsoft.jet.oledb.4.0;data source = " & _
                        My.Application.Info.DirectoryPath & "\Pictures.mdb")

                Dim rs As New ADODB.Recordset
                Dim sql As String = "Select * From Tabla1"
                If nReg > 0 Then sql = sql & " Where id = " & nReg
                rs.Open(sql, cn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
                If nReg = 0 Then rs.AddNew()
                rs.Fields("Foto").AppendChunk(b)
                rs.Update()

                cn.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End If
    End Sub
Le pasamos como parámetro 'nReg' el valor del campo Id si es para modificar la imagen y 0 (cero) si es para añadir un nuevo registro.

Qué hace:
- Abre un cuadro de diálogo para seleccionar la imagen (si tienes el archivo imagen ya predefinido, lo puedes pasar como parámetro a la función y eliminar el cuadro de diálogo)
- Lee los bytes del archivo y los guarda en un array b()
- Abre la BD con el método ADO y con el método AppendChunk lo graba en el campo OLE.

Espacio de nombres: System.IO

Un saludo