Cita:
Iniciado por rishart
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