Click here to Skip to main content
16,005,141 members
Please Sign up or sign in to vote.
3.00/5 (1 vote)
See more:
In my application I want to retrieve image from SQL server database on button click event.The image is stored in database in System.byte[] format.I want to retrieve that image on button click event but it display System.byte[] format.
The code written by us is as follows:

C#
foreach (DataRow row in datatable.Rows)
            {

                FirstName = datatable.Rows[i]["FirstName"].ToString();
                LastName = datatable.Rows[i]["LastName"].ToString();
                EmailId = datatable.Rows[i]["EmailId"].ToString();
                ClassName = datatable.Rows[i]["ClassName"].ToString();
                FacultyName = datatable.Rows[i]["FacultyName"].ToString();
                byte[] barrImg = (byte[])datatable.Rows[i]["Image"];
                //byteArrayToImage(barrImg);
                Response.Write("<table border='1' height=60 width=1000><tr><td>");
                Response.Write("<a href='DisplayStudInfo.aspx?AdminId=" + AdminId + "&EmailId=" + EmailId + "'><b><font color='blue'>" + FirstName + "" + LastName + "</font></b></a>");
                Response.Write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                Response.Write("<b><font size=4 color='black'>");
                Response.Write(EmailId);
                Response.Write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                Response.Write(ClassName);
                Response.Write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                Response.Write(FacultyName);
                Response.Write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                Response.BinaryWrite(barrImg);
                Response.Write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                Response.Write("</b></font>");
                Response.Write("</td></tr></table>");
                Response.Write("<br>");
                i++;
            }


Please Help me.
Thank You.
Posted
Updated 24-Sep-11 20:03pm
v2

use memory stream to actually read the byte array:

byte[] barrImg = (byte[])datatable.Rows[i]["Image"];
MemoryStream ms = new MemoryStream(barrImg);
 
Share this answer
 
Try as below code.
C#
byte[] barrImg = (byte[])datatable.Rows[i]["Image"];
MemoryStream mStream = new MemoryStream(barrImg);
Image myImage = Image.FromStream(mStream);
 
Share this answer
 
C#
byte[] barrImg = (byte[])datatable.Rows[i]["Image"];
MemoryStream objMemoryStream = new MemoryStream(barrImg);
objMemoryStream.Flush();
Image objImage = Image.FromStream(objMemoryStream);
objMemoryStream.Close();
 
Share this answer
 
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900