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.data.dll /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 first published in August 2003