You read the bytes from the DB and use Response.BinaryWrite to send the file down, making sure you set the header as well.
Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("Content-Length", b.Length.ToString)
Response.ContentType = ContentType
Response.BinaryWrite(b)
Response.Flush()
Response.Clear()
Something like that, where b is your array of bytes.