title: retrieve varbinary data c# to picturebox
body: <p>Hi everyone i have a problem with my code, i save the image as varbinary ok, but i want the image to show in a picturebox when selected from a fileupload, but i keep on getting a error, is is it possible ? i'm using c# and asp.net. i've been searching but i cant seem get the code working on my source.</p>
  
  <pre><code>using System;
  using System.Data;
  using System.Data.SqlClient;
  using System.Linq;
  using System.Web.UI.WebControls;
  using System.IO;
  using System.Drawing;
  
  public partial class Mensagem : System.Web.UI.Page
  {           
      protected void BtnUploadClick(object sender, EventArgs e)
      {
          string filePath = Server.MapPath(upload1.FileName);
          string filename = Path.GetFileName(filePath);
          string ext = Path.GetExtension(upload1.PostedFile.FileName);
          Stream fs = upload1.PostedFile.InputStream;
          BinaryReader br = new BinaryReader(fs);
          Byte[] bytes = br.ReadBytes((Int32)fs.Length);
           string dt = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss");    
  
          SqlConnection conn = new SqlConnection("Data Source=Microsoft SQL Server (SqlClient);Server=NEVETS-LAPTOP\\NEVETS;Initial Catalog=Forum;uid=sa;pwd=sql;Connect Timeout=10;TrustServerCertificate=True ");
                  conn.Open();
  
              SqlCommand sqlCommand = conn.CreateCommand();
              sqlCommand.CommandType = CommandType.StoredProcedure;
              sqlCommand.CommandText = "usp_inserirFicheiro";                
              sqlCommand.Parameters.AddWithValue("@nome", SqlDbType.VarChar).Value = filename;
              sqlCommand.Parameters.AddWithValue("@tamanho", SqlDbType.VarBinary).Value = bytes;
              sqlCommand.Parameters.AddWithValue("@formato", SqlDbType.VarChar).Value = ext;
              sqlCommand.Parameters.AddWithValue("@data", SqlDbType.DateTime).Value = dt;
              sqlCommand.Parameters.AddWithValue("@ficheiro", SqlDbType.VarBinary).Value = br;                            
              sqlCommand.ExecuteNonQuery();
              txtnome.Text = "sucesso";
  
              conn.Close();
  
      }
  
  
      protected void Button2_Click(object sender, EventArgs e)
      {
          //upload1.SaveAs(Server.MapPath("~/imgs/" + upload1.FileName).ToString());
          //pbficheiro.ImageUrl = @"~/imgs/" + upload1.FileName;
  
  
   Byte[] ba = new BinaryReader(upload1.PostedFile.InputStream).ReadBytes((Int32)upload1.PostedFile.InputStream.Length);
  using (MemoryStream ms = new MemoryStream(ba, false))
  {
      Image imgTmp = Image.FromStream(ms);
      Bitmap bm = new Bitmap(imgTmp.Width, imgTmp.Height);
      Graphics g = Graphics.FromImage(bm);
      g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
      g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
      g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
      Rectangle rect = new Rectangle(0, 0, imgTmp.Width, imgTmp.Height);
      g.DrawImage(imgTmp, rect, 0, 0, imgTmp.Width, imgTmp.Height, GraphicsUnit.Pixel);
  
      using (MemoryStream ms2 = new MemoryStream())
      {
          bm.Save(ms2, imgTmp.RawFormat);
            bm.Dispose();
            imgTmp.Dispose();
            if (WantAnImage)
                return Image.FromStream(ms2);
            else (WantBytes)
                ms2.ToArray();}
      }
  }
  
  }
  </code></pre>