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));