Personal Technology Information

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: Military launches TroopTube
Salt Lake Tribune, United States - Nov 17, 2008
Members can upload personal videos from anywhere with an Internet connection, but a Pentagon employee screens each for taste, copyright violations and ...


Personal Tech: Tennesee boasts world's fastest unclassified computer
Salt Lake Tribune, United States - Nov 17, 2008
AP The Department of Energy's Oak Ridge National Laboratory in Oak Ridge, Tenn. released this photograph Nov. 10 showing some of the 284 computer cabinets ...


CTV.ca

Ted Rogers (1933-2008), giant of Canadian tech and media
BetaNews - 3 hours ago
... any comment at any time for any reason. Please keep your responses appropriate and on topic. Foul language and personal attacks will not be tolerated.
Canada loses a tech legend IT World Canada Blogs
all 568 news articles


Next chapter for personal computers written in netbooks
KIVI-TV, ID - 7 hours ago
Rising demand for any tech gear is welcome at a time when recession is forcing consumers to refrain from all but the most essential purchases, ...


Personal Tech: Digital frame shows pictures from phones
Salt Lake Tribune, United States - Nov 10, 2008
By Peter Svensson Ap Technology Writer The Cameo digital picture frame can receive picture messages over the cellular network. ...


TechFlash | Job sites vs. personal networks: How I'm looking for ...
TechFlash, WA - 9 hours ago
Nearly every job I’ve ever been offered has been a result of a personal connection, be it a part-time fundraising position offered by a college friend’s dad ...


Coping With the Inevitable: The Losers in Your Portfolio
Wall Street Journal - 18 hours ago
One of the few positive things I can say about the tech-stock collapse of 2000-02 is that I didn't pay capital-gains taxes for years. ...


Personal Tech: Black Friday is a bright day for gadget lovers
Salt Lake Tribune, United States - Nov 17, 2008
The day after Thanksgiving, also known as "Black Friday," is one of the biggest shopping days of the year because that's when stores introduce hot deals for ...


Blowing an opportunity with India
Jerusalem Post, Israel - Dec 2, 2008
There are also numerous links in the hi-tech sector, as well as the low-tech sector such as industrial dairy cow technologies and deep-sea aquaculture. ...


Cape Cod Chronicle

Mashpee Gobbles Up Cape Tech/Harwich For A Fourth Straight Year In ...
Cape Cod Chronicle, MA - 8 hours ago
The Falcons, despite being whistled for two personal fouls, went through the Crusaders’ defense like a knife through butter on their next possession. ...

personal tech - Google News

Article List | Index | Site Map
All logos, trademarks and articles on this site are property and copyright of their respective owner(s).
The comments are property of their posters, all the rest is Copyright © 2006 CanadaSEEK.com - All Rights Reserved.