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.
Latest News
![]() Washington Post | Stocks end lower on personal income data Los Angeles Times, CA - Dell shares fell $3.48, or 14%, to $21.73 on its earnings report late Thursday and cautious comments about spending in the tech sector. ... Slower spending hurts Dell, tech firms Market was Down on Consumer Spending and Personal Incomes Data Stocks slide as personal income falls, crude rises |
Stocks end lower on personal income data The Associated Press - Investors worried about the tech sector after Dell's report late Thursday and its cautious comments about spending in the sector. The stock fell $3.48, ... |
Issue of technology in presidential campaign debated MiamiHerald.com, FL - Even though McCain may not be wired on a personal level, his campaign surely has a strong online presense. On Thursday, the first ad that popped up when you ... |
Stocks Shaken While Oil Stirs Forbes, NY - Tech stocks were the biggest drag on the market, as investors punished most of the sector's biggest names. Dell (nasdaq: DELL - news - people ) was the ... Street Softens As Gustav Pumps Oil Stocks Tumble On Inflation, Spending News Street Slumps Into Holiday |
Tech Test Drive: Deca Sports (Wii) San Jose Mercury News, USA - The bad: The game doesn't use personal Mii's, instead only letting you choose from preloaded teams and players. Games are over simplified for easy play. ... |
Slumping tech shares pace pre-holiday pullback SmallCapInvestor - Small-caps stocks drifted lower Friday, weighed down by losses in the tech sector and by troubling economic data on the personal income report. ... |
Texas Tech Hurricane Research Team Heads Towards Gustav KCBD-TV, TX - "Most other storms you go to some other location, and it's nothing personal, but it is a little bit, Katrina was a little different because its places that ... Calendar for Aug. 30 |
Personal Tech: iPhone just got smarter Salt Lake Tribune, United States - By Vince Horiuchi "Crash Kart,"a Mario Kart-like driving game, is shown running on Apple's new iPhone 3G. With all the hoopla over the iPhone 3G and its new ... |
Stocks fall on personal income data, Dell report The Associated Press - Ahead of next week's figures concerns arose Friday about the tech sector after Dell's report. The company fell $3.22, or 13 percent, to $21.99 after the ... |
![]() Seattle Post Intelligencer | Johnson finds plenty of faults in Tech rout Atlanta Journal Constitution, USA - He also screamed up close and personal at Zach Krish after the reserve guard returned to the sideline in the third quarter after he jumped offside to blow a ... Nesbitt, Dwyer lead Ga. Tech past Jax State, 41-14 Here, there, everywhere . . . where am I? |
Resources
-
Sorry there are no resources available at this time

