El cmd.ExecuteReader(); si esta retornando datos?
Esto no deberia ir asi:?
Código C#:
Ver originalwhile (dr.Read)
{
byte[] byteImage = Convert.ToByte(dt.Rows[7]["foto"]);
}
Lo pregunto porque por lo general no uso el reader, cuando se trata de recuperar datos utilizo un DataTable para recuperar la informacion.
Saludos