Tu segundo String.Format
usa {2}
como marcador de posición, pero solo está pasando un argumento, por lo que debe usar {0}
en su lugar.
Cambia esto:
String.Format("{2}", reader.GetString(0));
A esto:
String.Format("{0}", reader.GetString(2));