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

This was last published in August 2003

Dig Deeper on .NET Framework database programming best practices

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.