Most web applications have a lot of images used. These images are generally stored in a folder on the web server and are accessed by giving the relative path to the file relative to the root folder of the website. With .Net being the platform for distributed applications 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. To do this, the SQL Server database provides a data type called “image” that is used to store images in the database.

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

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

// create a byte[] for the image file being loaded

int imagelen = Upload.PostedFile.ContentLength;

byte[] picbyte = new byte[imagelen];

Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen);

// Insert the image and the image id into the database

SqlConnection conn = new SqlConnection (@ “gives the connection string
here … “);

treat

{

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 load button. The code provided above performs the following steps in the process of inserting an image into the database.

1. Get the content length of the image to be uploaded.

2. Create a byte[] to store the image

3. Read the input stream of the published file.

4. Create a connection object

5. Open the connection object.

6. Create a command object

7. Add parameters to the command object.

8. Run 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 run the command to retrieve the image.

5. Use the ExecuteScalar method of the command object to retrieve the image

6. Convert the output of the ExecuteScalar method to byte[]

byte[] image = (byte[]) command.ExecuteScalar ();

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

8. Create a bitmap object to contain the bitmap stream 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 generate the image in OutputStream.

bitmap.Save (Response.OutputStream, ImageFormat.Gif);

11. Close the connection

12. Close the stream mstream.Close ();

With the above steps, you can retrieve and display the image from the database on 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 database table. This storage method avoids the tedious task of tracing the web folder path if the images are stored in a web folder.