The way to read a blob into a byte array is through the GetBytes()
method
int length; //the width of the blob
byte[] buffer = new byte[length];
reader.GetBytes(reader.GetOrdinal("John123"), 0, buffer, 0, length);
MSDN Documentation for the method
FYI, GetBytes()
is available on most DataReader classes in C#.