Add a Generic Handler to your Web Forms application and in the ProcessRequest method, you need to query the database for the relevant file/binary data. You would pick the right image via a querystring, usually. The following code shows how you can query the database and return the binary data:
using (DbConnection conn = new DbConnection(connect))
{
  if (context.Request.QueryString["id"] != null)
  {
    DbCommand cmd = new DbCommand(qry, conn);
    cmd.Parameters.AddWithValue("", context.Request.QueryString["id"]);
    conn.Open();
    using (DbDataReader rdr = cmd.ExecuteReader())
    {
      if (rdr.HasRows)
      {
        rdr.Read();
        context.Response.AddHeader("content-disposition", "attachment; filename=" + rdr["FileName"]);
        context.Response.ContentType = rdr["MimeType"].ToString();
        context.Response.BinaryWrite((byte[])rdr["Blob"]);
      }
    }
  }
}
You need to change the DbConnection, DbCommand and DbDataReader to the type that your provider likes (Odbc or MySql) and then point the ImageUrl property of your Image control to the HttpHandler:
Image1.ImageUrl = "MyHandler.ashx?id=" + whatever the image id is.