
Hoy aprenderá a guardar imágenes en la base de datos de MS Access usando VB.Net. Este proyecto ilustrará cómo guardar un objeto en el campo con un tipo de datos de «Objeto OLE» en la base de datos de Access. En este proceso, la imagen en sí se guardará automáticamente en la base de datos cuando se haga clic en el botón. Vea el procedimiento a continuación 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 sql As String
Paso 5
Cree un método para guardar una imagen en la base de datos.
Private Sub saveImage(sql As String) Try '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() End Try End Sub
Paso 6
Escriba el siguiente código para obtener la imagen del directorio externo.
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click Try With OpenFileDialog1 'CHECK THE SELECTED FILE IF IT EXIST OTHERWISE THE DIALOG BOX WILL DISPLAY A WARNING. .CheckFileExists = True 'CHECK THE SELECTED PATH IF IT EXIST OTHERWISE THE DIALOG BOX WILL DISPLAY A WARNING. .CheckPathExists = True 'GET AND SET THE DEFAULT EXTENSION .DefaultExt = "jpg" 'RETURN THE FILE LINKED TO THE LNK FILE .DereferenceLinks = True 'SET THE FILE NAME TO EMPTY .FileName = "" 'FILTERING THE FILES .Filter = "(*.jpg)|*.jpg|(*.png)|*.png|(*.jpg)|*.jpg|All files|*.*" 'SET THIS FOR ONE FILE SELECTION ONLY. .Multiselect = False 'SET THIS TO PUT THE CURRENT FOLDER BACK TO WHERE IT HAS STARTED. .RestoreDirectory = True 'SET THE TITLE OF THE DIALOG BOX. .Title = "Select a file to open" 'ACCEPT ONLY THE VALID WIN32 FILE NAMES. .ValidateNames = True If .ShowDialog = DialogResult.OK Then Try PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName) Catch fileException As Exception Throw fileException End Try End If End With Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text) End Try End Sub
Paso 7
Haga el siguiente código para guardar la imagen cuando haga clic en el botón.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click sql = "Insert into tblimage (img) Values (@img)" saveImage(sql) MsgBox("Image has been saved in the database") End Sub
Salida:
Antes de la descarga del Tutorial presiona el siguiente enlace para que te suscribas a nuestro Canal de YouTube: