Votre deuxième String.Format
utilise {2}
comme espace réservé, mais vous ne transmettez qu'un seul argument, vous devez donc utiliser {0}
à la place.
Modifiez ceci :
String.Format("{2}", reader.GetString(0));
À ceci :
String.Format("{0}", reader.GetString(2));