Problem solve Get help with specific problems with your technologies, process and projects.

Saving images in a database

Learn how to save an image to a database using the .NET OleDB library.

Please let other users know how useful this tip is by rating it below. Do you have a tip or code of your own you'd like to share? Submit it here.

It's fairly easy to save an image in the database using .NET OleDB library. For simplicity, I have used MS Access database with two fields:

FieldName Type
Pic OLE Object
FileSize Text

The following code establishes a database connection and inserts a file in the "Pic" field.

Save the file as SaveImage.vb.

 Imports System Imports System.IO Imports System.Data Public Class SaveImage Shared Sub main() 'Declare a file stream object Dim o As System.IO.FileStream 'Declare a stream reader object Dim r As StreamReader Dim jpgFile As String Console.Write("Enter a Valid .JPG file path") jpgFile = Console.ReadLine If Dir(jpgFile) = "" Then Console.Write("Invalid File Path") Exit Sub End If 'Open the file o = New FileStream(jpgFile, FileMode.Open, FileAccess.Read, FileShare.Read) 'Read the output in a stream reader r = New StreamReader(o) Try 'Declare a byte array to save the content of the file to be saved Dim FileByteArray(o.Length - 1) As Byte o.Read(FileByteArray, 0, o.Length) 'Open the database connection. Please map the datasource name to match the 'Database path Dim Con As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=DbImages.mdb") Dim Sql As String = "INSERT INTO DbImages (Pic,FileSize) VALUES (?,?)" 'Declare a OleDbCommand Object  Dim CmdObj As New System.Data.OleDb.OleDbCommand(Sql, Con) 'Add the parameters CmdObj.Parameters.Add("@Pic", System.Data.OleDb.OleDbType.Binary, o.Length).Value = FileByteArray CmdObj.Parameters.Add("@FileSize", System.Data.OleDb.OleDbType.VarChar, 100).Value = o.Length Con.Open() CmdObj.ExecuteNonQuery() Con.Close() Catch ex As Exception Console.Write(ex.ToString) End Try End Sub End Class

Compile the file as: vbc SaveImage.vb / /r:system.dll. A file will be inserted in the database each time you execute SaveImage.exe.

More resources on images in a database: 

How do I move images from a picture box to and from a database?

Q&A: Images in a database

Dig Deeper on .NET Framework database programming best practices

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.