Articles. News. Information.

Category of Information, News & Articles


How to Save an Image in a SQL Server Database?


Most of the web applications have a lot of images used in it. These images are usually stored in a web server folder and they are accessed by giving the relative path to the file with respect to the root folder of the website. .Net being the platform for distributed application now, ASP.Net can be used to store images that are small to be stored in a database like SQL Server 2000 and later versions. For this purpose the SQL Server database provides a data type called "image" which is used to store images in the database.

To access these images stored in the database we will be using the ADO.Net classes. To find out how to insert and retrieve an image in to the SQL Server database, you can create a .aspx page which can have a HTMLInputFile control which is used to select the image file that is to be saved in the database. You can also create a textbox control in which you can add the image name or some comment or an image id for the image saved. Use a button control to upload the image to the database. Namespaces like System.Data.SqlClient, System.Drawing, System.Data, System.IO, and System.Drawing.Imaging are used in this task.

In the OnClick property of the button you can write the following code to upload an image to the database.

// create a byte[] for the image file that is uploaded
int imagelen = Upload.PostedFile.ContentLength;
byte[] picbyte = new byte[imagelen];
Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen);
// Insert the image and image id into the database
SqlConnection conn = new SqlConnection (@"give the connection string
here...");
try
{
conn.Open ();
SqlCommand cmd = new SqlCommand ("insert into ImageTable "
+ "(ImageField, ImageID) values (@pic, @imageid)",
conn);cmd.Parameters.Add ("@pic", picbyte);
cmd.Parameters.Add ("@imageid", lblImageID.Text);
cmd.ExecuteNonQuery ();
}
finally
{
conn.Close ();
}

You can also write the above code in a function and call that function in the OnClick event of the upload button. The code given above performs the following steps in the process of inserting an image into the database.

1. Get the content length of the image that is to be uploaded
2. Create a byte[] to store the image
3. Read the input stream of the posted file
4. Create a connection object
5. Open the connection object
6. Create a command object
7. Add parameters to the command object
8. Execute the sql command using the ExecuteNonQuery method of the command object
9. Close the connection object

To retrieve the image from the SQL Database you can perform the following steps.

1. Create a MemoryStream object. The code can be something like, MemoryStream mstream = new MemoryStream ();

2. Create a Connection object

3. Open the connection to the database

4. Create a command object to execute the command to retrieve the image

5. Use the command object's ExecuteScalar method to retrieve the image

6. Cast the output of the ExecuteScalar method to that of byte[] byte[] image = (byte[]) command.ExecuteScalar ();

7. Write the stream mstream.Write (image, 0, image.Length);

8. Create a bitmap object to hold the stream Bitmap bitmap = new Bitmap (stream);

9. Set the content type to "image/gif" Response.ContentType = "image/gif";

10. Use the Save method of the bitmap object to output the image to the OutputStream. bitmap.Save (Response.OutputStream, ImageFormat.Gif);

11. Close the connection

12. Close the stream mstream.Close();

Using the above steps you can retrieve and display the image from the database to the web page.

You can use these algorithms and take advantage of the "image" data type available in the SQLServer 2000 database to store small images that correspond to a particular record in the table of the database. This method of storing avoids the tedious task of tracking the path of the web folder if the images are stored in a web folder.

Visit A Guide to .NET for a complete introduction to .NET framework. Learn about ASP.NET, VB.NET, C# and other related technologies.


MORE RESOURCES:

Personal Tech: Phishing attacks get personal
Salt Lake Tribune, United States - Jan 5, 2009
By Kim Komando You know to watch for phishing attacks, which use e-mail messages purporting to be from legitimate businesses to trick you into divulging ...


Personal Tech 'Zune 30 Midnight Meltdown' Angers Music Lovers
CIO Today, CA - Dec 31, 2008
Web forums are churning with angry reports of frozen 30GB Microsoft Zunes, labeled a Z2K problem and the Zune 30 Midnight Meltdown. ...


BluePhone Personal Tech Experts Offer Five Tips for Building a ...
International Business Times, NY - Dec 23, 2008
Here are five tips to consider before you make your decision,according to BluePhone (www.bluephone.com), the Personal Tech Supporthotline that helps ...


Making connections, gadget to gadget
International Herald Tribune, France - Jan 7, 2009
(A gallery of some duds from past CES shows is at nytimes.com/personaltech.) This year there certainly are many efforts to create products so stupendous ...


BRIEF: Personal Tech: Student finds way to extend battery life
TMC Net, CT - Dec 22, 2008
Imagine your cell phone lasting 12 times longer than before and you see the potential of Atif Shamim's invention. The electronics PhD student from Carlton ...


Personal tech to be focus of trade show
Daily Gleaner, Canada - Jan 8, 2009
By LUANN LASALLE MONTREAL - The television, the grande dame of household technology, should have a starring role again at this year's International Consumer ...


Solutions: Tips for troubleshooting in Internet Explorer
Tampabay.com, FL - Jan 2, 2009
Send questions to personaltech@sptimes.com or Personal Tech, PO Box 1121, St. Petersburg, FL 33731. Questions are answered only in this column.


Personal Tech LG Announces Broadband HDTV with Netflix Built In
CIO Today, CA - Jan 5, 2009
By Barry Levine LG Electronics will will add broadband and Netflix streaming software to its new high-definition TVs. LG's new sets will be shown at the ...


Blake Trchka: Central's go-to technology master
TheDoings-ClarendonHills.com, IL - Jan 6, 2009
Junior Blake Trchka of Clarendon Hills is the school's personal "tech guru". PHOTO COURTESY OF BLAKE TRCHKA Blake Trchka, 16, of Clarendon Hills works as a ...


Personal Tech Acer Launches Extreme Gaming Aspire Notebook
CIO Today, CA - Dec 29, 2008
By Jennifer LeClaire Acer America has launched the $1799 Aspire 8930G-7665 notebook for extreme gaming on the go with an 18.4-inch CineCrystal ...

Personal-Tech - Google News

Home | Sitemap
© 2006 eInfoJunction.com Homepage | Web Directory | Article Directory| Bid Directory