See the question and my original answer on StackOverflow

This is a two steps answer. In the page, you can do something like this:

        using (OleDbConnection mDB = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessConnection"].ConnectionString))
        {
            mDB.Open();
            using (OleDbCommand cmd = new OleDbCommand("select pProductId from Products where pProductId=" + context.Request.QueryString["ImageID"], mDB))
            {
                using (OleDbDataReader rdr = cmd.ExecuteReader())
                {
                    rdr.Read();
                    context.Response.Write("<img src=\"ImgHandler.ashx?pProductId=");
                    context.Response.Write((int)rdr[0]);  // I suppose pProductId is an int, adapt accordingly
                    context.Response.Write("\" />");
                }
            }
        }

and in the HTTP handler implicitly triggered, something like this:

public class MyHandler : IHttpHandler
{
    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        using (OleDbConnection mDB = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessConnection"].ConnectionString))
        {
            mDB.Open();
            // select the file data (I put pData here as a placeholder, and assume it will be a byte[])
            using (OleDbCommand cmd = new OleDbCommand("select pData from Products where pProductId=" + context.Request.QueryString["ImageID"], mDB))
            {
                using (OleDbDataReader rdr = cmd.ExecuteReader())
                {
                    rdr.Read();
                    context.Response.ContentType = "image/png";// put the content type here
                    context.Response.BinaryWrite((byte[])rdr[0]);
                }
            }
        }
    }
}

Note the using pattern which ensures proper resources cleanup once used. Also, ideally you could cache the data on the client using proper cache HTTP headers (like if-modified-since) but this is another story ...