I already have a stored proc call the retrieves the data based on an id... the recordset retrieved is one row with the photo and a few other text fields.
Please advise the necessary code to place in the codebehind file to display this photo. I am using <asp:label> tag for the positioning of the image.
Thanks!
-------------------------------------------
Re: Displaying image from database...
System.Configuration.Configuration rootWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/mysite");
connString = rootWebConfig.ConnectionStrings.ConnectionStrings["strDataSource"];
SqlConnection objConnection = new SqlConnection(connString.ConnectionString);
SqlDataAdapter objCommand = new SqlDataAdapter("SelectProfile", objConnection);
DataSet objDataSet = new DataSet();
objConnection.Open();
objCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
objCommand.SelectCommand.Parameters.Add(new SqlParameter("@user_id", SqlDbType.Char, 50));
objCommand.SelectCommand.Parameters["@user_id"].Value = Request.Params["id"];
objCommand.Fill(objDataSet, "UserAccount");
byte[] fileData = (byte[])objDataSet.Tables["UserAccount"].Rows[0]["photo"];
int fileSize = fileData.Length;
Response.ClearContent();
Response.ClearHeaders();
Response.Clear();
Response.Buffer = false;
Response.ContentType = "image/JPEG";
Response.AddHeader("Content-Disposition", "attachment; filename=MyPhoto.jpg");
Response.AddHeader("Content-Length", fileSize.ToString());
Response.BinaryWrite(fileData);
objConnection.Close();
Response.End();
Re: Displaying image from database...
here are some code bits I have used in the past to get binary data from sql server, but I only know how to response write the data as the full output for a page and then reference it in the html, I would try a searching on google for actually binding binary image data to the page (not sure if it can be done), I seroiusly doubt that you will be able to bind to an asp:label
here is how I have done this in the past
html in an aspx page where you want to show an image from the database
<img src="GetImage.aspx?id=39" />
then you create a GetImage.aspx page that responses gif or jpg data
// get data from db fileTitle = rs["FileTitle"].ToString(); fileSize = rs["FileSize"].ToString(); contentType = rs["ContentType"].ToString(); byte[] fileData = (byte[]) rs["FileData"]; // response output Response.ClearContent(); Response.ClearHeaders(); Response.Clear(); Response.Buffer = false; Response.ContentType = contentType; Response.AddHeader("Content-Disposition", "attachment; filename=" + fileTitle); Response.AddHeader("Content-Length", fileSize.ToString()); Response.BinaryWrite(fileData);
------------------------------------