65.9K
CodeProject is changing. Read more.
Home

Storing And Displaying Image From Database

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.55/5 (7 votes)

Aug 17, 2007

viewsIcon

29021

downloadIcon

402

This article describe how to add image directly to database and how to view the Image stored from Database.

Introduction

Actually it is not good to store Image file into Database But some time it is necessary to store it. Here I am giving solution to storing and displaying Image to Database.

Using the code

This will help you to storing and Displaying Image to Database -here Sql Server 2005.

First of all create page named AddEmployee.aspx and add repeater to it shown in source file.

The main idea is that: I am storing Image files into database directly into Binary Format. So storing it first convert it into Binary:

            SqlParameter prmFName = new SqlParameter("@_FName", txtFName.Text.Trim());
            cmdAddEmp.Parameters.Add(prmFName);
            SqlParameter prmLName = new SqlParameter("@_LName", txtLName.Text.Trim());
            cmdAddEmp.Parameters.Add(prmLName);
            int len = FIleUP.PostedFile.ContentLength;
            byte[] img = new byte[len];
            FIleUP.PostedFile.InputStream.Read(img, 0, len);
            SqlParameter prmImg = new SqlParameter("@_Image", img);
            cmdAddEmp.Parameters.Add(prmImg);
            int Status = cmdAddEmp.ExecuteNonQuery();  

Now at Image viewing time:

      <td id="tdImage" runat="server">
          <asp:Image ID="img" runat="server" AlternateText='<%# Eval("FirstName") %>' ImageUrl='<%# "~/displayimage.aspx?ID="  + DataBinder.Eval(Container.DataItem,"Id") %>'  Width="50px" Height="50px"/>
      </td>

At the DisplayImage.aspx Page:

            cmdAddEmp.CommandText = "GetImage";
            cmdAddEmp.CommandType = CommandType.StoredProcedure;
            SqlParameter prmId = new SqlParameter("@_Id", Convert.ToInt32(Request.QueryString["Id"].ToString()));
            cmdAddEmp.Parameters.Add(prmId);
            byte[] byteImg = (byte[])cmdAddEmp.ExecuteScalar();
            Response.BinaryWrite(byteImg); 

Response.BinaryWrite(byteImg) writes binary content of the Image and display Image.