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


Deleting and Destroying Data Forever

Peoples' private information needs to stay private, even after it... Read More

5 Minute Guide to Video Editing for Beginners

Getting started with video editing is very simple you only... Read More

PC Owners - The Largest Criminal Gang Ever?

The year is 1981. IBM has just released the Personal... Read More

15 Good Programming Habits

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

Basic Computer Thermodynamics

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

Wordpress Plugins

Maybe you always wanted a feature that hasn't been available... Read More

5 Steps to Removing PC Clutter

It's hard enough as it is these days to get... Read More

Plasma TV vs LCD TV

For those seeking to buy their first flat panel TV... Read More

10 Time Saving Keyboard Shortcuts

Time is money. And when you constantly have to divide... Read More

HTML Explained: Part 2

Get started creating web pages using text files and HTML... Read More

2 PC Annoyances and How To Solve Them!

I have a love-hate relationship with my computer.In fact, often... Read More

Have You Invited A Spy Into Your Computer?

Yes, it's true. You may have inadvertently invited a spy... Read More

Windows PDA Medical Software Benefits

PDA Medical BenefitsIf you are concerned about your medical history,... Read More

iPod users get the picture

iPod users start to get the picture and it's turning... Read More

Freezing - Time To Warm Up Your PC

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

Printing Multiple Copies of Photos

I do a holiday letter every year and send them... Read More

Mail-merging: The Principles

About mail-mergingMail-merging is the process of merging variable data and... Read More

4 Computer Money-saving Tips

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

Three Things You Can Do to Keep Your Computer Running at Maximum Performance

Although there are many things that can affect the performance... Read More

Windows Task Manager in English

You use Ctrl+Alt+Del to see what's running on your PC,... Read More

Anti-Skip Protection on Mp3 Players

There have been some questions on anti-skip protection on mp3... Read More

D2X Digital SLRCoolpix 8800 Actually Refers to Two Nikon Cameras

Addressing a D2X Digital SLRCoolpix 8800 search, this article provides... Read More

Why Build Your Own Computer System

Have you ever thought about building your own computer system?... Read More

Image Formats: GIF, JPEG, BMP

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

CCNA 640-801 Certification Primer

The Cisco Certified Network Associate (CCNA) Certification is meant for... Read More

Getting Started with HTML

The basic language of the internet is html. If you... Read More

A Lesson in HTML

As the owner of a Country Mall and Top Site... Read More

The Best MP3 Players Under $100

You don't have to fork out $250 for a super-diggy-whizbang... Read More

What Exactly are Screensavers? - part II

Here are some tips on how to use screensavers:First of... Read More

Buying A PC Flat Screen Monitor

For six years, my Samsung PC 13.8 inch SyncMaster conventional... Read More

Flash Your nVidia Video Cards BIOS

You will need the following:1. 1.44MB FDD (floppy)2. NVFLASH utility... Read More

Tips For Getting Technical Support Help Online

Sometimes your PC will start acting strange for no apparent... Read More

Build Your Own Computer

I'm eighty-one years old and I bought my first computer... Read More