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.

In The News:


pen paper and inkwell


cat break through


How to Set Up Simple File Sharing WinXP

The first step is: Start > My DocumentsSo you have... Read More

How To Become A True CCNA

I've worked my way from the CCNA to the CCIE,... Read More

Cisco Certification: Taking Your First Certification Exam

Youâ??ve studied hard; youâ??ve practiced your configurations; youâ??ve used your... Read More

iPod - Learn How It Can Solve Everyday Problems

All over the world, people carry with them walkmans and... Read More

Bluetooth Headphones For Your PDA

Nothing is worse than having to negotiate all kinds of... Read More

Are You Well Protected?

Winter?the official start of the cold and flu season. Though,... Read More

5 Ways to Speed Up Your PC

No matter how fast your processor and regardless of how... Read More

The Newbies Guide to Personal Computer Maintenance

When you turn on your computer, does it act like... Read More

Basic Diagnosis Guidelines for Your PC

Simone is exasperated. She has to work on her university... Read More

Compare MP3 Players for the Coolest Features and Sweetest Deals

How can you compare mp3 players to be sure you're... Read More

The Many Benefits of Owning a DVR

Has This Ever Happened To You? OK.. it's Friday night,... Read More

Portable DVD Players - Things To Know

In my humble opinion nothing makes a long trip easier... Read More

Basic Computer Thermodynamics

That desk in front of you and everything else around... Read More

Computer Performance Tips

Introduction In this article I will clearly spell out the... Read More

Help, I Need a New HDTV! (Part 4 of 5)

Feeling overwhelmed in selecting a new TV? With all the... Read More

4 Computer Money-saving Tips

Tip #1 -- Rebates: A rebate is not always a... Read More

EDTV vs HDTV

Confused by EDTV vs HDTV? We don't blame you. The... Read More

Buying a Personal Computer (PC)

For many people the computer industry is a seeming unsolvable... Read More

A Beginners Guide to Avoiding Viruses

"Aaaaaahhhhhh! I've been invaded by a virus!" Getting a virus... Read More

Why Build Your Own Gaming Computer?

The best way to get the gaming computer that you... Read More

Freezing - Time To Warm Up Your PC

Freezing is also known as crashing or hanging. It's frustrating.... Read More

Emulation Manual - A Complete Guide on How to Change Your Windows XP to Mac OS X

IntroductionMac OS X is the most technologically advanced operating system... Read More

15 Good Programming Habits

1. Before sitting down for coding, you must have formal... Read More

Cache In Your Chips And Get A Bus!

Computer related terminology could sometimes be daunting to newcomers. These... Read More

Quick System Restore with ASR Backups

ASR (Automated System Recovery) is a feature available on the... Read More

10 Easy Steps to Speed Up Your Computer - Without Upgrading

1. Empty the Temp directory regularly. To do this, make... Read More

Setting File Permissions On A Unix Server

File permissions are one of the strengths that the Unix... Read More

Choosing a Portable MP3 Player: Part 1

MP3 players are everywhere! It seems that the number of... Read More

New Computer? Steps to Protect Your Computer Before Connecting to the Internet

Getting a new computer should be an exciting and gratifying... Read More

Five Simple Steps to Speed up Your Computer

Most people download and save so much information on their... Read More

Digital Cameras: Hot Gear with the Coolest Features!

Cameras: still known for taking pictures but assumed as digital... Read More

Image Formats: GIF, JPEG, BMP

When browsing the internet you are likely to come across... Read More

Tips For Finding Great Deals On Computer Accessories & Supplies

Tip #1. Do a Google search. Don't be to general... Read More