Storing And Displaying Image From Database






1.55/5 (7 votes)
Aug 17, 2007

29021

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.