Mon. Apr 29th, 2024

How to save an image to a SQL Server database?

By admin Aug10,2022

Most web applications have a lot of images used. These images are usually stored in a folder on the web server and are accessed by giving the relative path to the file with respect 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 enough to be stored in a database like SQL Server 2000 and later. 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 use the ADO.Net classes. To find out how to insert and retrieve an image into the SQL Server database, you can create an .aspx page that can have an HTMLInputFile control that is used to select the image file to save 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 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 being uploaded

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 (@”give the connection string
here…”);

try

{

connection 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

{

connection 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 above performs the following steps in the process of inserting an image into the database.

1. Get the content length of the image to load

2. Create a byte[] to store the image

3. Read the input stream from 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 recover the SQL database image, you can do 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 fetch 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 stream mstream.Write(image, 0, image.Length);

8. Create a bitmap object to contain the stream Bitmap bitmap = new Bitmap (stream);

9. Set the content type to “image/gif” Response.ContentType = “image/gif”;

10. Use the Bitmap object’s Save method to send the image to the 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 tracking the web folder path if the images are stored in a web folder.

By admin

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *