Cómo Actualizar una Imagen en la Base de Datos de MS Access usando VB.Net

Cómo Actualizar una Imagen en la Base de Datos de MS Access usando VB.Net

Esta vez, aprenderás cómo actualizar una imagen en la base de datos de MS Access usando VB.net. Se nos ocurrió esta idea porque esta es una función muy importante cuando se trata del objeto de la base de datos. Este método tiene la capacidad de actualizar la imagen almacenada en la base de datos de acceso. También tiene una función que puede ver una imagen en la vista grande. Es un procedimiento simple que puede hacer incluso si es un principiante en programación. Simplemente siga la guía paso a paso para ver cómo funciona.

Creando Aplicación
Paso 1
Abra Microsoft Visual Studio 2010, 2012, 2013, 2015, 2017 0 2019 y cree una nueva aplicación de formulario de Windows para C Sharp.

Buscar Registros Entre dos Fechas en C Sharp y Base de Datos MS Access

Paso 2
Realice el formulario tal como se muestra a continuación.

image

Paso 3
Presione F7 para abrir el editor de código. En el editor de código, agregue un espacio de nombres para OLeDB para acceder a las bibliotecas OLeDB.

Imports System.Data.OleDb

Paso 4
Cree una conexión entre la base de datos de acceso y visual basic .net. Después de eso, declare todas las clases y variables que se necesitan.

Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
                                                     Application.StartupPath & "\dbsaveimg.accdb")
    Dim cmd As OleDbCommand
    Dim da As OleDbDataAdapter
    Dim dt As DataTable
    Dim sql As String

Paso 5
Cree un método para recuperar imágenes en la base de datos.

Private Sub loadData(sql As String, dtg As DataGridView)
       Try
           con.Open()

           cmd = New OleDbCommand
           da = New OleDbDataAdapter
           dt = New DataTable

           With cmd
               .Connection = con
               .CommandText = sql
           End With

           da.SelectCommand = cmd
           da.Fill(dt)

           dtg.DataSource = dt
           dtg.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
           dtg.Columns(0).Visible = False

       Catch ex As Exception
           MsgBox(ex.Message)
       Finally
           con.Close()
           da.Dispose()
       End Try
   End Sub

Paso 6
Cree un método para actualizar una imagen en la base de datos.

Private Sub executeQuery(sql As String)
       Try
           Dim arrImage() As Byte
           Dim mstream As New System.IO.MemoryStream()

           'SPECIFIES THE FILE FORMAT OF THE IMAGE
           PictureBox1.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)

           'RETURNS THE ARRAY OF UNSIGNED BYTES FROM WHICH THIS STREAM WAS CREATED
           arrImage = mstream.GetBuffer()

           'GET THE SIZE OF THE STREAM IN BYTES
           Dim FileSize As UInt32
           FileSize = mstream.Length
           'CLOSES THE CURRENT STREAM AND RELEASE ANY RESOURCES ASSOCIATED WITH THE CURRENT STREAM
           mstream.Close()

           con.Open()

           cmd = New OleDbCommand
           With cmd
               .Connection = con
               .CommandText = sql
               .Parameters.AddWithValue("@img", arrImage)
               .ExecuteNonQuery()
           End With

       Catch ex As Exception
           MsgBox(ex.Message)
       Finally
           con.Close()
           da.Dispose()
       End Try
   End Sub

Paso 7
Escriba el siguiente código para cambiar el tamaño de una imagen en la primera carga del formulario.

Private Sub DataGridView1_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting

       If (e.RowIndex < 0 Or e.ColumnIndex < 0) Then Return

       If DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).ValueType = GetType(Byte()) Then
           CType(DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex),
             DataGridViewImageCell).ImageLayout = DataGridViewImageCellLayout.Zoom
       End If

   End Sub

Paso 8
Escriba el siguiente código para recuperar una imagen en la primera carga del formulario

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        sql = "Select ID,img as Picture From tblimage"
        loadData(sql, DataGridView1)
    End Sub

Paso 9
Escriba el siguiente código para pasar la imagen desde la vista de cuadrícula de datos al cuadro de imagen.

Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick

      Dim arrImage() As Byte
      arrImage = DataGridView1.CurrentRow.Cells(1).Value
      Dim mstream As New System.IO.MemoryStream(arrImage)
      PictureBox1.Image = Image.FromStream(mstream)
      PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage

  End Sub

Paso 10
Haga doble clic en el botón «Examinar» para abrir el controlador de eventos de clic y haga el siguiente código para obtener una imagen en la exploración y colocarla en el cuadro de imagen.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       If OpenFileDialog1.ShowDialog = DialogResult.OK Then
           PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
       End If
   End Sub

Paso 11
Vuelva a hacer doble clic en el botón «Actualizar» para abrir el controlador de eventos de clic y haga los siguientes códigos para actualizar la imagen en la base de datos.

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

       sql = "UPDATE tblimage SET img = @img WHERE ID=" & DataGridView1.CurrentRow.Cells(0).Value
       executeQuery(sql)

       sql = "Select ID,img as Picture From tblimage"
       loadData(sql, DataGridView1)

   End Sub

Antes de la descarga del Tutorial presiona el siguiente enlace para que te suscribas a nuestro Canal de YouTube:

SUSCRIBETE AL CANAL DE YOUTUBE AQUI !

Cómo Actualizar una Imagen en la Base de Datos de MS Access usando VB.Net – Descargar el Tutorial en el siguiente enlace:

DESCARGAR AQUÍ

One thought on “Cómo Actualizar una Imagen en la Base de Datos de MS Access usando VB.Net

  1. JLuis

    el Codigo para actualizar una imagen de datos binarios largos no la actualiza permanece la existente vb.net access

    Reply

Responder a JLuis Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *