WPF Retrieve Image from Database in VB.NET
You can easily learn that how to retrieve an image from database and display in WPF using VB.net.
Before start learning about how to retrieve image from database, you should know how to insert an image in the database, to learn how to save an image to database click the button below
Start learning how to retrieve image from database
Tools used:
- Microsoft SQL Server 2008
- Microsoft Visual Studio 2010
Structure of the Table "ImgContainer" -
Column Name |
Data Type |
Description |
Id |
Int |
Defines as Identity and handled by itself to generate and store the unique Id for each image stored in database |
Name |
Varchar |
This field holds the name of each image |
ImgData |
Image |
Image files are stored as binary in this column |
User Interface of the application:
Controls available in user interface:
- ListBox (ListBox1) - ListBox1 is used to show the image files available in the database.
- Image Control (Image1) - It is used to display the selected image from the ListBox control.
- Button1 - It is used to close the application
- Button2 - You can minimize the application to the taskbar by pressing this button control.
Code to Display images in the ListBox Control:
Dim con As New SqlConnection("Data Source=.;uid=sa;pwd=wintellect;database=MYDATABASE")
con.Open()
Dim dad As SqlDataAdapter = New SqlDataAdapter("select Id, Name from ImgContainer", con)
Dim dst As New DataSet
dad.Fill(dst, "ImgContainer")
con.Close()
Dim datarow As DataRow
For Each datarow In dst.Tables(0).Rows
Dim lbitem As New ListBoxItem
lbitem.Content = datarow(1).ToString
lbitem.DataContext = datarow(0).ToString
ListBox1.Items.Add(lbitem)
Next
Code to Display selected image in the Image Control:
Dim con As New SqlConnection("Data Source=.;uid=sa;pwd=wintellect;database=MYDATABASE")
Dim lbitem As ListBoxItem = TryCast(ListBox1.SelectedItem, ListBoxItem)
Dim dst As New DataSet
con.Open()
Dim dad As New SqlDataAdapter("Select ImgData from ImgContainer where Id='" + lbitem.DataContext.ToString + "'", con)
dad.Fill(dst)
con.Close()
dad.Fill(dst, "ImgContainer")
con.Close()
Dim ImgSource() As Byte = DirectCast(dst.Tables(0).Rows(0)(0), Byte())
Dim stream As MemoryStream = New MemoryStream()
stream.Write(ImgSource, 0, ImgSource.Length - 1)
stream.Seek(0, SeekOrigin.Begin)
Dim bitmap As New BitmapImage
bitmap.BeginInit()
bitmap.StreamSource = stream
bitmap.EndInit()
If bitmap.Width < 390 Or bitmap.Height < 340 Then
Image1.Stretch = Stretch.None
Image1.VerticalAlignment = Windows.VerticalAlignment.Center
Image1.HorizontalAlignment = Windows.HorizontalAlignment.Center
Image1.Source = bitmap
Else
Image1.Stretch = Stretch.Uniform
Image1.VerticalAlignment = Windows.VerticalAlignment.Center
Image1.HorizontalAlignment = Windows.HorizontalAlignment.Center
Image1.Source = bitmap
Output:
I hope this article is helpful .....
---------------------------------------------------------------------------------------------
Nothing rubbish here, each article is valuable for needy