
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.
Paso 2
Realice el formulario tal como se muestra a continuación.
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:
el Codigo para actualizar una imagen de datos binarios largos no la actualiza permanece la existente vb.net access