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.